基础算法 快速排序
Posted 吴云龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础算法 快速排序相关的知识,希望对你有一定的参考价值。
1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 6 4 int partition(int arr[], int low, int high){ 5 int key; 6 key = arr[low]; 7 while(low<high){ 8 while(low <high && arr[high]>= key ) 9 high--; 10 if(low<high) 11 arr[low++] = arr[high]; 12 while( low<high && arr[low]<=key ) 13 low++; 14 if(low<high) 15 arr[high--] = arr[low]; 16 } 17 arr[low] = key; 18 return low; 19 } 20 void quick_sort(int arr[], int start, int end){ 21 int pos; 22 if (start<end){ 23 pos = partition(arr, start, end); 24 quick_sort(arr,start,pos-1); 25 quick_sort(arr,pos+1,end); 26 } 27 return; 28 } 29 30 int main(void){ 31 int i; 32 int arr[N]={32,12,7, 78, 23,45}; 33 printf("before\n"); 34 for(i=0;i<N;i++) 35 printf("%d\t",arr[i]); 36 quick_sort(arr,0,N-1); 37 printf("\nafter\n"); 38 for(i=0; i<N; i++) 39 printf("%d\t", arr[i]); 40 printf ("\n"); 41 return 0; 42 }
以上是关于基础算法 快速排序的主要内容,如果未能解决你的问题,请参考以下文章