生无涯

吾生也有涯,而知也无涯,以无涯随有涯,乐以忘忧,生亦无涯矣www.cnblogs.com/shengwuya
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

a program a day 23 (ds,shell's sort)

Posted on 2010-10-19 23:53  生无涯  阅读(143)  评论(0编辑  收藏  举报

/**
*shell's sort
**/
#include<stdio.h>
void shellSort(int array[],int n)
{
 int gap = n,flag = 0;
 int tmp,j = 0;
 while(gap > 1)
 {
  gap /= 2;
  do
  {
   flag = 0;
   for(int i = 0;i < n - gap;i++)
   {
       j = i + gap;
    if(array[i] > array[j])
    {
     tmp = array[i];
     array[i] = array[j];
     array[j] =  tmp;
     flag = 1;
    }
   }
  }while(flag);
 }
}
int main()
{
 int arr[10] = {2,5,6,3,7,8,0,9,12,1};
 printf("before sorted:\n");
 for(int i = 0;i != 10;i++)
 {
  printf("%d ",arr[i]);
 }
 printf("\n");

 shellSort(arr,10);

 printf("after sorted:\n");
 for(int j = 0;j != 10;j++)
 {
  printf("%d ",arr[j]);
 }
 return 0;
}