package com.wgs;
public class Insert {
public static void sort(Comparable[] a) {//需要实现Comparable接口的类
for (int i = 1; i < a.length; i++) {//默认第一个是已经实现的排序的
for (int j = i; j > 0; j--) {//倒叙遍历已经排序的数组
if (greater(a[j-1],a[j])){
exchange(a,j-1,j);
}
}
}
}
//比较实现了Comparable接口的两个元素哪一个大
public static boolean greater(Comparable v, Comparable w) {
return v.compareTo(w) > 0;//返回的true就说明v>w。反之亦然。
}
//数组元素i和j交换位置
public static void exchange(Comparable[] a, int i, int j) {//传进来的当i和j来看的
//交换下表索引
Comparable temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
测试类:
public class Test {
public static void main(String[] args) {
Integer[] num = {2,1,3,45,23};
Insert.sort(num);//调用类里面的静态方法
System.out.println(Arrays.toString(num));//调用Arrays类里面的静态方法啊
}
}
该博客详细介绍了如何实现一个基于Comparable接口的插入排序算法,包括sort方法、greater方法和exchange方法。在测试类中,使用Integer数组进行排序并打印结果,展示了算法的正确性。
746

被折叠的 条评论
为什么被折叠?



