排序算法总结

本文shell排序代码可能出现对于0索引位置无法排序的问题,建议加一点修改如下:

.....

int incre = arr.length;

while(true){

incre = incre / 2;

for(int k = 0; k< incre; k++){

for(int i = k + incre; i < arr.length; i++){

for(int j = i; j >= k; j -= incre){

if(j - incre >= k && arr[j] < arr[j - incre]){

int temp = arr[j];

arr[j] = arr[j - incre];

arr[j - incre] = temp;

}else

break;

}

}

}

if(incre == 1)

break;

}

......liaolan liaolan

lia***nhyy@foxmail.com

5年前 (2020-09-19)

2026-01-08 10:10:50