</pre><pre name="code" class="cpp">
</pre><pre name="code" class="cpp">
</pre><pre name="code" class="cpp">插入排序 在已排好的数组中找到合适位置插入。前面已排好序的数比它大向后移动
</pre><pre name="code" class="cpp">package Sort;
public class InsertSort {
/**
* @param args
*/
public static void main(String[] args) {
int[] arr={4,1,5,7,12,8,2};
sort2(arr);
for(int a:arr){
System.out.print(a+" ");
}
}
private static void sort(int[] arr) {
for(int i=0;i<arr.length;i++){
for(int j=i;j>0;j--){
if(arr[j]<arr[j-1]){
int temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
}
}
private static void sort2(int[] arr){
int temp,i,j;
for(i=0;i<arr.length;i++){
temp=arr[i]; //记录插入数据的值
for(j=i;j>0 && temp<arr[j-1];j--){
arr[j]=arr[j-1]; //比插入的值大的向后移动
}
arr[j]=temp; //在合适位置插入数据
}
}
}