//待排序数组
var sortArray = [1,2,5,1000,500,200,49,100,50,40,30,20];
//打印待排序数组
print(sortArray);
//希尔排序
int d = sortArray.length ~/ 2;//计算步长
int j = 0;
int replaceObject = 0;
while (d > 0) {
for (var i = d; i < sortArray.length; i++) {
j = i - d;
while (j >= 0) {
if (sortArray[j] > sortArray[j + d]) {
//比较根据步长取出的数据,j位的数据大于j+d位的数据,就交换他们的位置
replaceObject = sortArray[j];
sortArray[j] = sortArray[j + d];
sortArray[j + d] = replaceObject;
j = j - d;
} else {
j = -1;
}
}
}
d = d ~/ 2;
}
print("排完序的数组${sortArray}");
网友评论