快速排序

xiaoxiao2021-02-28  92

#include <stdio.h> #include <stdlib.h> void quicksort(int data[], int low, int high) {    int left = low;    int right = high;     if(left == right) return;   while(left<right)   {    //分为【low mid)和【mid, high]两部分。     while( left < right&& data[low] <= data[right])right--;         if(left == right){ right ++;  break; }   while(left < right&& data[low]  > data[left])left++;         if(left == right){ left --; break;}         int temp = data[right];         data[right] = data[left];         data[left] = temp; }    quicksort(data,low , left);    quicksort(data, right, high); } main() {       int data[] = {7,1,3,2,6};       quicksort(data, 0, 4);       int i = 0;       for(; i< 5; i++)       {             printf("%d,", data[i]);       }       printf("Hello world !\n");       system("pause"); }
转载请注明原文地址: https://www.6miu.com/read-76979.html

最新回复(0)