快速排序
不说什么了,直接代码:
#include<stdio.h> int position(int arr[],int left,int right) { int base = arr[left]; int i = left,j = right; while(i < j) { while((i < j) && (arr[j] >=base)) j--; arr[i] = arr[j]; while((i<j)&&(arr[i]<base)) i++; arr[j] = arr[i]; } arr[i] = base; return i; } void q_sort(int arr[],int left,int right) { int p; if(left < right){ p = position(arr,left,right); q_sort(arr,left,p-1); q_sort(arr,p+1,right); } } int main() { int arr[] = {45,3,57,4,5,36,1,55}; int len = sizeof(arr)/sizeof(int); q_sort(arr,0,len-1); for(int i = 0;i<len;i++) printf("%d ",arr[i]); printf("\n"); return 0; }
基本排序算法,都该看得懂
浙公网安备 33010602011771号