package com.liuxian.algo; public class MySortClass implements Comparable<MySortClass> { public String userName; public int num; public MySortClass(String userName, int num) { this.userName = userName; this.num = num; } public int compareTo(MySortClass o) { return this.num - o.num; } }
package com.liuxian.algo; public class Helper { public static void printArray(MySortClass [] sorts) { for (int i = 0; i < sorts.length; i++) { System.out.println(sorts[i].num); } } }
package com.liuxian.algo; import java.util.Random; public class BubbleSort { public static <AnyType extends Comparable<? super AnyType>> AnyType[] bubbleSort(AnyType[] a) { AnyType tmp; for (int i = 0; i < a.length; i++) { for (int j = i; j > 0; j--) { if((a[j].compareTo(a[j-1]) < 0)) { tmp = a[j]; a[j] = a[j-1]; a[j-1] = tmp; } } } return a; } public static void main(String[] args) { int max = 100; Random random = new Random(100); MySortClass[] sort = new MySortClass[10]; for (int i = 0; i < sort.length; i++) { int num = random.nextInt(max); sort[i] = new MySortClass(String.valueOf(num), num); } Helper.printArray(sort); System.out.println("after sort : "); sort = bubbleSort(sort); Helper.printArray(sort); } }
output:
15 50 74 88 91 66 36 88 23 13 after sort : 13 15 23 36 50 66 74 88 88 91
来源:https://www.cnblogs.com/LiuXianBlog/p/3554277.html