插入排序
插入排序
步骤:
- 第一步:从数组的第二个位置开始向前比较,如果比前面位置小,就交换顺序;到达左边界也退出比较(即左边已经没有数能与其进行比较了)
- 第二步:指针向后移一位然后重复第一步
public class InsertSort {
//测试
public static void main(String[] args) {
int[] arr={5,4,3,2,1};
sort(arr);
TestUtils.print(arr);
}
public static void sort(int[] arr){
for (int i = 1; i < arr.length; i++) {//要插入的数的下标位置
while (arr[i]<arr[i-1]){//与前一个数进行比较。while是重点(不断进行比较直到找到插入位置)
//交换
arr[i-1]=arr[i-1] ^ arr[i];
arr[i]=arr[i-1] ^ arr[i];
arr[i-1]=arr[i-1] ^ arr[i];
if (i--==1){//出口+指针左移
break;
}
//i--;//指针左移
}
}
}
}