/*
* Copyright 2014 YU Heng-yang. All rights reserved.
*
* shell_sort.c - Simple shell sort implementation.
*
* 2014-7-5 YU Heng-yang.
*/
#include <stdio.h>
#include "common.h"
#include <assert.h>
void shell_sort(int *arr, int n);
int main(int argc, char *argv[])
{
int *array, n;
n = input(&array);
shell_sort(array, n);
output(array, n);
return 0;
}
void shell_sort(int *arr, int n)
{
int inc, i, j, temp;
assert(arr);
/* you may consider another increment sequence */
for (inc = n / 2; inc > 0; inc /= 2) {
for (i = inc; i < n; i += inc) {
temp = arr[i];
for (j = i; j >= inc && temp < arr[j - inc]; j -= inc)
arr[j] = arr[j - inc];
arr[j] = temp;
}
}
}
希尔排序
最新推荐文章于 2020-08-05 22:35:56 发布