阅读背景:

C语言:用快速排序算法对一个数组进行排序

来源:互联网 
#include<stdio.h> #include<stdlib.h> #include<time.h> #define NUMBER 10 //NUMBER为数组的大小 void quickSort(int [],int,int); void display(int [],int); int main() { int num[NUMBER]; int randValue = 0; int i,temp; srand(time(NULL)); //随机生成NUMBER个1-100的随机数 for(i=0;i<NUMBER;i++) { randValue=1+(int)rand()%100; num[i]=randValue; } srand(time(NULL)); printf("使用快速排序算法\n"); printf("排序前:"); display(num,NUMBER);//打印数组内容 quickSort(num,0,NUMBER-1);//调用快速排序算法 printf("排序后:"); display(num,NUMBER); return 0; } void quickSort(int num[],int lower,int upper) { int partition(int [],int ,int); int pivot; //递归调用 pivot=partition(num,lower,upper); if(lower < pivot) quickSort(num,lower,pivot-1); if(pivot < upper) quickSort(num,pivot+1,upper); } int partition(int num[],int left,int right) { int pivot,temp; pivot = num[left]; while(left<right) { //从右往左扫描 while(num[right]>=pivot && left<right) right--; if(right!=left) { num[left]=num[right]; left++ ; } //从左往右扫描 while(num[left]<=pivot && left<right) left++; if(right!=left) { num[right]=num[left]; right--; } } num[left]=pivot; return(left); } //打印数组 void display(int num[],int count) { int i; for(i=0;i<count;i++) { printf("%d\t",num[i]); } printf("\n"); } #include<stdio.h> #include<stdlib.h> #include<t



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: