今天来用Java编写插入排序算法:
插入排序算法动态示意图:
插入排序算法.gif
Java代码:
package someTest;
public class Insert_sorts {
public static <T extends Comparable<T>> void InsertionSort(T array[],int last) {
T key;
for(int j=1;j<last;j++) {
key=array[j];
int i=j-1;
while(i>=0 && key.compareTo(array[i])<0) {
array[i+1]=array[i];
i--;
}
array[i+1]=key;
}
}
public static void main(String[] args) {
int[] arr1= {4,23,6,78,1,54,231,9,12};
int last=arr1.length;
Integer[] array=new Integer[last];
for(int i=0;i<last;i++) {
array[i]=arr1[i];
}
InsertionSort(array,last);
for(int i=0;i<last;i++) {
System.out.print(array[i]+" ");
}
System.out.println();
String[] arr2= {"c", "a", "e", "b","d"};
last=arr2.length;
InsertionSort(arr2,last);
for(int i=0;i<last;i++) {
System.out.print(arr2[i]+"\t");
}
}
}
测试结果如下:
1 4 6 9 12 23 54 78 231
a b c d e