希尔排序

来源:互联网 发布:vb打印九九乘法表 编辑:程序博客网 时间:2024/06/05 03:48
/***希尔排序****/#define N 11#include<iostream>using namespace std;void BInsertSort(int a[], int len){size_t dk;for (dk = len / 2; dk > 0; dk /= 2){for (size_t i = dk + 1; i != len + 1; i++){for (size_t j = i - dk; j > 0; j -= dk){if (a[j+dk] < a[j]){a[0] = a[j+dk];//a[0]在这做临时变量a[j+dk] = a[j];a[j] = a[0];}else break;}}int static count = 0;cout << "第" << ++count << "趟:";for (size_t i = 1; i != len + 1; i++)cout << *(a + i) << " ";cout << endl;}}int main(){int a[N] = { 0 };for (size_t i = 1; i != N; i++)cin >> a[i];BInsertSort(a, N - 1);cout << "排好后结果为:" << endl;for (size_t i = 1; i != N; i++)cout << a[i] << " ";return 0;}

0 0
原创粉丝点击