| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 302 人关注过本帖, 1 人收藏
标题:快速排序算法
只看楼主 加入收藏
sheng7728520
Rank: 1
来 自:yunnan
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-19
结帖率:100%
收藏(1)
 问题点数:0 回复次数:1 
快速排序算法
#include <stdio.h>

void swap(int *L, int m,int n)
{
     int temp=L[m];
      L[m]=L[n];
      L[n]=temp;
}
  
int partition(int *L,const int low, const int high)
                                                   
{
   
   int m=low+1,n=high;
   int base=L[low];

    if(high-low==1)
  {
      if(L[low]>L[high])
       swap(L,low,high);
      return high;
  }

   while(m<n)
   {
     while(m<n && L[m]<=base)  m++;
     while(n>low && L[n]>=base)   n--;   
     if(n>m)
  {
   swap(L,m,n);
      m++,n--;
  }
   }
   swap(L,low,n);
   return n;
}
void QuickSort(int *L,const int left,const int right)
{
  if(left<right)
     {
       int pos=partition(L,left,right);
         QuickSort(L,left,pos-1);
         QuickSort(L,pos+1,right);
     }
}

int main (int argc,char *argv[])
{
    int k;
    int a[]={33,12,1,56,8,45,89,7,34};
    QuickSort(a,0,8);

    for(k=0;k<=8;k++)
       printf("%4d",a[k]);
    printf("\n");
    return 0;
}
搜索更多相关主题的帖子: 算法 
2010-10-29 12:25
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:0 
快排源码?  直接用qsort() 自己写个compare函数   比这个简洁。

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2010-10-29 12:41
快速回复:快速排序算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012710 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved