数据结构与算法学习四:希尔排序
一.排序方法
?
二.动画演示
???? http://student.zjzk.cn/course_ware/data_structure/web/flashhtml/shell.htm
?
三.Java代码
public static int[] shellSort(int[] data) {int increment = data.length; // 区间为incrementint temp = 0;while (true) {increment = increment / 2;// 分成了几组,一组一组处理for (int x = 0; x < increment; x++) {// 下面就是直接插入排序,只是区间由1变成了incrementfor (int i = x + increment; i < data.length; i += increment) {if (data[i - increment] > data[i]) {temp = data[i];int j = i - increment;for (; j >= 0 && data[j] > temp; j -= increment) {data[j + increment] = data[j];}data[j + increment] = temp;}}}if (increment == 1) {break;}}return data;}?四.时间复杂度和稳定性