/*插入排序的研究
*
* https://blog.csdn.net/qq1641530151/article/details/80550296
*
public int[] insertSort(int[] array){
//直接插入排序
//在排序之前我们需要搞清一个思路,新插入一个数据的时候,排序过后的数组都是
//从小到大排列好的,所以我们需要从后往前查找,直到找到比我们要插入的数字还小的
//值。这个时候我们需要一个变量j作为标识
for(int i = 1;i<array.length;i++){
int temp = array[i];
int j;
for(j = i-1;j>=0;j--){
//将大于temp的数向后移动一步
if(array[j]>temp){
array[j+1] = array[j];//记录j的值也就是temp要插入的位置
}else{
//结束本次循环,开始下次循环
break;
}
}
//因为j最后执行了一次--
array[j+1] = temp;
}
return array;
}
*
* */
package day7yue21;
public class CharuSort {
public static void main(String[] args) {
int[] arr = {5,2,8,1,11,8,100};
charuSort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void charuSort(int[] arr)
{
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];
for(int j = i-1; j>=0; j--)
{
if(arr[j]>temp)
{
//这个不如上面的性能好
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
}