快速排序quick_sort
来源:互联网 发布:谷歌版coc数据 编辑:程序博客网 时间:2024/06/05 07:59
#include <stdio.h>#include <stdlib.h>#define NUM_OF_ARRAY100void quick_sort(int *array, int left, int right){ int old_left = left; int old_right = right; int standard_data = array[left]; while(left < right) { while((array[right] >= standard_data) && (left < right))right--; if(left != right) { array[left] = array[right]; left++; } while((array[left] <= standard_data) && (left < right))left++; if(left != right) { array[right] = array[left]; right--; } } array[left] = standard_data; if(old_left < left) quick_sort(array, old_left, left-1); if(old_right > left) quick_sort(array, left+1, old_right);}int main(int argc, char *argv[]){ int arr[NUM_OF_ARRAY] = {0}; int i=0; srand(getpid()); for(i=0; i<NUM_OF_ARRAY; i++) { arr[i] = rand(); printf("%d\n", arr[i]); } quick_sort(arr, 0, NUM_OF_ARRAY-1); printf("\n"); for(i=0; i<NUM_OF_ARRAY; i++) { printf("%d\n", arr[i]); } return 0;}