插入排序:时间复杂度O(n^2)
思路:从第二个元素开始遍历数组,记录当前的数字,然后与前面的每一个数字比较,如果大于当前的数字则将当前的该数据向后移动,如果小于则将记录的数据放在空缺的位置。
代码:
int[] arr = {67,23,30,4,5,3,76};
int temp=0;//获取当前的值
for(int i=1;i<arr.length;i++) {
temp=arr[i];
int j;//确定坐标
for(j=i-1;j>=0&&arr[j]>temp;j--) {
arr[j+1]=arr[j];//将大于temp的数向后移动
}
arr[j+1]=temp;
}
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}