C快速排序

来源:互联网 发布:淘宝运营方案ppt模板 编辑:程序博客网 时间:2024/06/05 09:25
#include<stdio.h>#include<stdlib.h>inline void swap(int *x, int *y) {int t = *x;*x = *y;*y = t;}void quick_sort(int arr[], int start, int end) {if (start >= end){return;    }int mid = arr[end];int left = start, right = end - 1;while (left < right)     {while (arr[left] < mid && left < right){left++;        }while (arr[right] >= mid && left < right){right--;        }swap(&arr[left], &arr[right]);}if (arr[left] >= arr[end]){swap(&arr[left], &arr[end]);    }else{left++;    }quick_sort(arr, start, left - 1);quick_sort(arr, left + 1, end);}int main(){    int a[] = {24, 68, 59, 52, 72, 28, 96, 33, 57};        quick_sort(a, 0, sizeof(a) / sizeof(a[0])-1);        int i = 0;    for(; i < sizeof(a) / sizeof(a[0]); i++)    {        printf("%d ", a[i]);    }    system("pause");    return 0;}

0 0