#include <stdio.h> typedef int datatype; void shell_sort(datatype arr[], int n) { int i, j, flag, gap = n; datatype tmp; while(gap>1) { gap /= 2; do{ flag = 0; for(i=0;i<n-gap;++i) { j = i+gap; if(arr[i] > arr[j]) { tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; flag = 1; } } }while(flag!=0); } } int main() { int i, arr[10] = {9,1,25,5,6,15,54,2,65,10}; printf("before sorted:/n"); for(i=0;i<10;++i) printf("%d, ",arr[i]); shell_sort(arr, 10); printf("/nafter sorted:/n"); for(i=0;i<10;++i) printf("%d, ",arr[i]); }