c语言快速排序案例,什么是快速排序?C语言数组快速排序例子

快速排序(Quick Sort)是一种有效的排序算法。虽然算法在最坏的情况下运行时间为O(n^2),但由于平均运行时间为O(nlogn),并且在内存使用、程序实现复杂性上表现优秀,尤其是对快速排序算法进行随机化的可能,使得快速排序在一般情况下是最实用的排序方法之一。

快速排序被认为是当前最优秀的内部排序方法。

下面用C语言实现快速排序:

字符

void quickSort(char* arr,int startPos, int endPos)

{

int i,j;

char ch;

ch=arr[startPos];

i=startPos;

j=endPos;

while(i

{

while(arr[j]>=ch &&

i

arr[i]=arr[j];

while(arr[i]<=ch &&

i

arr[j]=arr[i];

}

arr[i]=ch;

if(i-1>startPos) quickSort(arr,startPos,i-1);

if(endPos>i+1) quickSort(arr,i+1,endPos);

}

void main()

{

char ch[]="qwer5tyuiopasdfghjklzxcvbnm";

quickSort(ch,0,26);

printf("\n%s\n",ch);

}

数字

void quickSort(int *r,int t, int w)

{

int i,j;

int x;

if (t

{x=r[t];

i=t;

j=w;}

while(i

{

while(r[j]>=x &&

i

if (i

{r[i]=r[j];i++;}

while(r[i]<=x &&

i

if (i

{r[j]=r[i];j--;}

}

r[i]=x;

if(i-1>t) quickSort(r,t,i-1);

if(w>i+1) quickSort(r,i+1,w);

}

void main()

{

int x[]={12,13,2,56,4,78,5,44,80,32};

int i,t,w;

t=0;w=9;

quickSort(x,t,w);

for(i=0;i<10;i++)

printf("%d ",x[i]);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值