下面是使用c语言实现希尔排序的代码:

#include <stdio.h>

void shell_sort(int arr[], int n){
    int gap, i, j, temp;
    for (gap = n/2; gap > 0; gap /= 2){
        for (i = gap; i < n; i++){
            temp = arr[i];
            for (j = i; j >= gap && arr[j-gap] > temp; j -= gap){
                arr[j] = arr[j-gap];
            }
            arr[j] = temp;
        }
    }
}

int main(){
    int arr[] = {100, 16, 14, 7, 105, 50, 78, 9, 11, 25, 24};
    int n = sizeof(arr)/sizeof(arr[0]);
    shell_sort(arr, n);
    for (int i = 0; i < n; i++){
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}

运行结果为:7 9 11 14 16 24 25 50 78 100 105

用c语言希尔排序编译100 16 14 7 105 50 78 9 11 25 24

原文地址: https://www.cveoy.top/t/topic/drpB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录