quicksort.c
来自「quicksort为一个利用quicksort找数值的方法」· C语言 代码 · 共 68 行
C
68 行
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SWAP(x,y,t) (t=x,x=y,y=t)
int partition(int [],int,int);
void quicksort(int [],int,int);
int main(void)
{
int i,a[30];
srand(time(NULL));
for(i=0;i<30;i++)
a[i]=rand()%100;
for(i=0;i<30;i++)
printf("%d ",a[i]);
quicksort(a,0,29);
printf("\n");
for(i=0;i<30;i++)
printf("%d ",a[i]);
printf("\n");
system("pause");
return 0;
}
int partition(int a[],int left,int right)
{
int i,j,base,tmp;
base=a[right];
j=left-1;
for(i=left;i<right;i++)
{
if(a[i]<=base)
{
j++;
SWAP(a[i],a[j],tmp);
}
}
SWAP(a[j+1],a[right],tmp);
return j+1;
}
void quicksort(int a[],int left,int right)
{
int p;
if(left<right)
{
p=partition(a,left,right);
quicksort(a,left,p-1);
quicksort(a,p+1,right);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?