Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61812
  • 博文数量: 18
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 211
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-21 18:11
文章分类

全部博文(18)

文章存档

2010年(8)

2009年(10)

我的朋友

分类: C/C++

2010-08-14 15:58:56

插入排序
void InsertSort(int *p,int len)
{
     int i;
     int j;
     int tmp;
     for(i=1;i     {
     if(a[i-1]>a[i])
         {
              tmp=a[i];
              a[i]=a[i-1];
              for(j=i-2;(j!=-1)&&a[j]>tmp;j--)
                    a[j+1]=a[j];
              a[j+1]=tmp;
         }
     }
}

希尔排序
int dt[]={3,2,1};
void shellsort(int *p,int d,int len)
{
     int i;
     int tmp;
     int j;
     for(i=d;i         {
             if(p[i-d]>p[i])
                 {
                     tmp=p[i];
                     p[i]=p[i-d];
                     for(j=(i-2*d);(j>=0)&&p[j]>tmp;j-=d)
                            p[j+d]=p[j];
                     p[j+d]=tmp;
                 }
         }
}

快速排序
void QuickSort(int *p,int low,int high)
{
     int pivc;
     if(low         {
             pivc=Partition(p,low,high);
             QuickSort(p,low,pivc-1);
             QuickSort(p,pivc+1,high);
         }
}
int Partition(int *p,int low,int high)
{
    int tmp=p[low];
    while(low    {
        while((low=tmp)) --high;
        p[low]=p[high];
        while((low        p[high]=p[low];
    }
    p[low]=tmp;
    return low;
}

阅读(883) | 评论(0) | 转发(0) |
0

上一篇:链表归并的实现

下一篇:判断回文数

给主人留下些什么吧!~~