插入排序:简单说就是,将数组的第二个元素开始跟数组的第一个元素进行比较,将比较大的元素放在数组的第二个位置(对升序来说),将第三个元素跟数组的第一和第二个元素进行比较,第四个元素跟第一第二第三个元素比较,以此类推。
上述说法可能有点不太通俗易懂,结合程序更能说明问题
public class Sort {
//插入排序方法
public static void sort(int[] arry){
int j;
int i;
int temp;
//从第二个跟第一个元素开始进行比较,所以j=1
//比较从1到arry.length;
for(j=1;j<arry.length;j++){
temp=arry[j];
i=j-1;
//while循环保证要比较的次数
while(i>=0&&arry[i]>temp){
//将较大者放在后面
arry[i+1]=arry[i];
i=i-1;
}
arry[i+1]=temp;
}
}
public static void main(String[] args) {
//初始化数组
int [] array =new int [10];
Random r=new Random();
for(int i=0;i<10;i++){
array[i]=r.nextInt(10);
}
System.out.println("排序前:");
for(int a:array){
System.out.print(a+" ");
}
Sort.sort(array);
System.out.println();
System.out.println("排序后:");
for(int a:array){
System.out.print(a+" ");
}
}
}