博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

ypxing

学而不思则罔,思而不学则殆

见贤思齐焉,见不贤而内自省也

人不知而不愠,不亦君子乎?

   ypxing.cublog.cn
关于作者  
姓名:星云鹏 (Yunpeng Xing)
职业:IT相关
年龄:28
位置:北京
个性介绍:
Love me, feed me, 
never leave me.
失败只有一种, 那就是半途而废

我的分类  




Shell排序

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#define ARRAY_SIZE 10

void shellInsert(int* sortArray, int sortSize, int delt)
//delt是步长
{
  int i, j, temp;
  for(i=delt;i<sortSize;i++)
    if(sortArray[i]<sortArray[i-delt])
    {
      temp = sortArray[i];
      for(j=i-delt; j>=0 && sortArray[j]>temp; j-=delt)
        sortArray[j+delt] = sortArray[j];
      sortArray[j+delt] = temp;
    }
}

void shellSort(int* sortArray, int sortSize, int* deltArray, int deltSize)
{
  int i;
  for(i=0;i<deltSize;i++)
    shellInsert(sortArray, sortSize, deltArray[i]);
}

int main()
{
  int sortArray[ARRAY_SIZE]={30, 29, 45, 33, 21, 3, 108, 75, 99, 66};
  int i;
  int deltArray[3]={4, 2, 1};
  shellSort(sortArray, 10, deltArray, 3);
  for(i=0;i<10;i++)
    printf("%d ", sortArray[i]);
  printf("\n");
}


其他排序方法

 发表于: 2007-07-18,修改于: 2007-11-15 14:55 已浏览394次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.01208

京ICP证041476号