自己写了个希尔排序
Posted 霄林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己写了个希尔排序相关的知识,希望对你有一定的参考价值。
#include<iostream> using namespace std; //希尔排序,步长每次减半 void ShellSort(int ndata,int data[]) { int i, j, k; int tmp; for (i = ndata / 2; i > 0; i = i / 2) //步长减半 { for (j = i; j < ndata; j++) { tmp = data[j]; for (k = j; k - i >= 0; k = k - i) { if (data[k - i]>tmp) { data[k] = data[k - i]; } else { break; } } data[k] = tmp; } } } int main() { int ndata; int data[1000]; cin >> ndata; for (int i = 0; i < ndata; i++) { cin >> data[i]; } ShellSort(ndata, data);// cout << "排序后:" << endl; for (int i = 0; i < ndata; i++) { cout << data[i] << endl; } return 0; }
以上是关于自己写了个希尔排序的主要内容,如果未能解决你的问题,请参考以下文章