快速排序实例

来源:互联网 发布:js监听页面刷新时间 编辑:程序博客网 时间:2024/05/19 13:06
#include <stdio.h>void quick_sort(int* a, int left, int right){     if (NULL == a || left >= right)           return;     int i = left;     int j = right;     int key = a[left];     while (i < j)     {           while (i < j && key <= a[j])           {                j--;           }           a[i] = a[j];  // 覆盖           while (i < j && key >= a[i])           {                i++;           }           a[j] = a[i];     }     a[i] = key;     quick_sort(a, left, i - 1);     quick_sort(a, i + 1, right);}int main(){     int a[] = {49, 38, 65, 97, 76, 13, 27, 49};     int left = 0;     int right = sizeof(a) / sizeof(a[1]);     quick_sort(a, left, right - 1);     for (int i = 0; i < right; i++)     {           printf("%d  ", a[i]);     }     printf("\n");     return 0;}
1 0
原创粉丝点击