一个关于直接排序的有关问题
一个关于直接排序的问题
这是一个简单的直接排序,
我下面是加了一个临时变量temp作为哨兵,求能人帮忙改成用arr[0]作为哨兵实现吧。
用1~Array.length存数据进行排序
void insertSort1(int[] arr) {
int temp = 0, j = 0;
for(int i = 1; i < arr.length; i++)
if(arr[i] < arr[i-1]) {
temp = arr[i];
for(j = i-1; (j >= 0)&&(arr[j] > temp); --j)
arr[j+1] = arr[j];
arr[j+1] = temp;
}
}
------解决方案--------------------
不是很明白LZ的意思
你要的烧饼是干嘛的
这是一个简单的直接排序,
我下面是加了一个临时变量temp作为哨兵,求能人帮忙改成用arr[0]作为哨兵实现吧。
用1~Array.length存数据进行排序
void insertSort1(int[] arr) {
int temp = 0, j = 0;
for(int i = 1; i < arr.length; i++)
if(arr[i] < arr[i-1]) {
temp = arr[i];
for(j = i-1; (j >= 0)&&(arr[j] > temp); --j)
arr[j+1] = arr[j];
arr[j+1] = temp;
}
}
------解决方案--------------------
不是很明白LZ的意思
你要的烧饼是干嘛的
- C/C++ code
void insertSort1(int[] arr) { int temp = 0, j = 0; for(int i = 1; i < arr.length; i++) if(arr[i] < arr[i-1]) { arr[0] = arr[i]; for(j = i-1; (j >= 0)&&(arr[j] > arr[0]); --j) arr[j+1] = arr[j]; arr[j+1] = arr[0]; } } void insertSort1(int[] arr) { int temp = 0, j = 0; arr[0] = std::numeric_limits<int>::min(); for(int i = 1; i < arr.length; i++) if(arr[i] < arr[i-1]) { temp = arr[i]; for(j = i-1; arr[j] > temp; --j) arr[j+1] = arr[j]; arr[j+1] = temp; } }