当前位置: 代码迷 >> 综合 >> 排序算法-希尔排序(nlogn)
  详细解决方案

排序算法-希尔排序(nlogn)

热度:59   发布时间:2023-12-24 22:55:04.0

希尔排序

代码:

#include<iostream>
#include<string>using namespace std;
void ShellSort(int * arrs, int length);int main()
{int buff[7] = { 5, 2, 1, 4, 9, 6, 0 };for (int i = 0; i < 7; i++)cout << buff[i] ;cout << endl;ShellSort(buff, 7);for (int i = 0; i < 7; i++)cout << buff[i];cout << endl;return 0;
}void ShellSort(int *buf,int length)
{int step = length / 2;      //初始增量while (step > 0){//无序部分for (int i = step; i < length; i++){int temp = buf[i];int j;//子序列中的插入排序,这是有序部分for (j = i - step; j >= 0 && temp < buf[j]; j = j - step)//在找到当前元素合适位置前,元素后移buf[j + step] = buf[j];buf[j + step] = temp;}step /= 2;}
}

结果:


  相关解决方案