排序的算法类模板
- 说明:我们把每个算法里面的会用到的一些通用的方法抽取出来,作为“排序算法类模板”。
- “排序算法类模板”中的Example类展示了我们的习惯约定:下面是相关代码:
public class Example{
public static void sort(Comparable[] a){
}
private static boolean less(Comparable v,Comparable w){
return v.compareTo(w) < 0;
}
private static void exch(Comparable[] a,int i,int j){
Comparable temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public static boolean isSorted(Comparable[] a){
for (int i = 1; i < a.length; i++) {
if (less(a[i],a[i-1])){
return false;
}
}
return true;
}
public static void show(Comparable[] a){
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
System.out.println();
}
}
- 解析:
sort(Comparable[] a):该方法是算法类的核心方法,主要负责的就是将元素排序
less(Comparable v,Comparable w):该方法对元素进行比较
exch(Comparable[] a,int i,int j):将数组的i位置的元素和j位置的元素进行交换
isSorted(Comparable[] a):该方法的目的是判断a数组是不是有序的
show(Comparable[] a):该方法的目的是调用了sort方法排序后看一下数组的元素,将其打印出来。 - 我们的排序算法模板适用于任何实现了Comparable接口的数据类型,在JAVA中有很多类型的都实现了该接口,在我们自己创建一个数据类型的时候,只有我们实现Comparable接口就可以使用我们写好的排序算法,并且我们可以通过实现一个comparable接口就可以自定义排序的规则