您的位置:首页 > 编程语言 > Java开发

Java学习资料-Java常用算法-希尔排序算法

2015-01-28 00:00 218 查看
摘要: Java学习资料-Java常用算法-希尔排序算法

/**
* 希尔排序
*
* @param  array
*/
public void XiErSort(int[] array) {
// 循环增量(就是每个子数组的个数,当子数组个数为1时,排序就完成)
for (int increment = array.length / 2; increment > 0; increment = increment / 2) {
// 对increment个子数组进行排序
for (int i = 0; i < increment; i++) {
// 对子数组进行直接插入排序
for (int j = i; j < array.length; j = j + increment) {
// 拿到索引为j的值,依次前面的所有的值比较
for (int k = j; k > 0; k = k - increment) {
// 当后面的值小于前面的值的时候,2个数交换
if (array[k] < array[k - 1]) {
// 交换2个数的位置
int temp = array[k];
array[k] = array[k - 1];
array[k - 1] = temp;
}
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: