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]);
}
總結
以上是生活随笔為你收集整理的c语言快速排序案例,什么是快速排序?C语言数组快速排序例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言菜单程序循环结构举例,C语言程序设
- 下一篇: 希尔伯特曲线的绘制c语言,用四叉树和希尔