C语言希尔排序

来源:互联网 发布:云计算视频 百度网盘 编辑:程序博客网 时间:2024/05/20 06:05
#include<stdio.h>void swap(int *x,int *y);void shellsort(int a[],int i){for(int j=i/2;j>0;j/=2)//这个是每次除以2其余数不为0时,为止!{   for(int k=0;k<j;k++)//这个是前面的数在j之内依次加一{    for(int l=k+j;l<i;l+=j)//这个是j里面的数依次加j,直到=||>i为止!{            if(a[l]<a[l-j]){                 swap(&a[l],&a[l-j]);}}}}}int main(){int a[10]={1,2,5,8,9,3,6,4,7,10};printf("排序之前:\n");for(int i=0;i<10;i++){printf("%d ",a[i]);}shellsort(a,10);printf("排序之后: \n");for(i=0;i<10;i++){printf("%d ",a[i]);}}void swap(int *x,int *y){int z=*x;*x=*y;*y=z;}

0 0