快速排序程序

原创 2007年09月24日 13:28:00
#include <stdio.h>
/*
功能:快速排序
start表示起始位置指针,len表示要排序的长度
无返回值
*/
void qiuck_sort(int *start,int len)
{
    int k;//用作记录枢轴记录关键字
    int *p1,*p2,*pkey;//p1,p2分别表示高位和低位的指针,pkey枢轴记录关键字指针
    if(len<=1)//1位不必排序
    {
        return;
    }
    pkey=start;//把第一为
    k=*start;//记录枢轴记录关键字
    p1=start;
    p2=start+len-1;
    while(p1<p2)
    {
        while(*p2>=k&&p1<p2)p2--;
        *pkey=*p2;
        pkey=p2;
        while(*p1<=k&&p1<p2)p1++;
        *pkey=*p1;
        pkey=p1;
    }
    *p1=k;//填入枢轴记录
    //分治为两部分递归
    qiuck_sort(start,p1-start);
    qiuck_sort(p1+1,start+len-p1-1);
}

相关文章推荐

快速排序程序

  • 2012年10月29日 18:55
  • 1.02MB
  • 下载

C语言快速排序程序

  • 2013年12月03日 18:44
  • 720B
  • 下载

20150124 【 Linux-C 函数指针 】 模拟快速排序程序--快排

快排的特点就是通用性; 只要你提供比较函数 cmp 它就能对任何类型的数据进行排序。 大一的时候很不解这玩意的原理, 现在总于知道了————>函数指针。。。 所以就手敲了一遍。 一...

快速排序程序

  • 2012年09月18日 22:31
  • 6KB
  • 下载

快速排序程序

  • 2014年01月10日 11:40
  • 1KB
  • 下载

一个快速排序程序

很讨厌不少教材上排序时两边向中间的扫描的方法,感觉很麻烦。看见《算法导论》上是单向扫描的...

C语言使用stdlib.h库函数的二分查找和快速排序程序

快速排序: #include #include #include #define LENGTH(x) sizeof(x)/sizeof(x[0]) /**输出数组元素 *\param ...

快速排序C#程序

  • 2013年12月14日 20:28
  • 36KB
  • 下载

快速排序Java实现程序

  • 2015年05月24日 09:25
  • 762B
  • 下载

三种基本的排序程序(多态)

这个程序主要是为了熟悉冒泡,选择,插入三种排序方法。还可以理解静态方法的使用,和一种比较简洁的二值交换程序。 import java.util.Scanner; import java.util.Ar...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:快速排序程序
举报原因:
原因补充:

(最多只允许输入30个字)