快排算法(c語言版)

#include <stdio.h>


void QuickSort(int * arr,int low,int high);

int findPost(int * arr,int low,int high);


void main(void){

int arr[7] = {-2, 1,-8, 0, -985, 4, -93};

QuickSort(arr,0,7);

for(int i = 0;i<7;i++){

printf("%d\n",arr[i]);

}

}

//快排算法

void QuickSort(int * arr,int low,int high){

int post;

if(low < high){

post = findPost(arr,low,high);

QuickSort(arr,low,post-1);

QuickSort(arr,post+1,high);

}


}

//查找節點位置

int findPost(int * arr,int low,int high){

int val = arr[low];

while(low < high){

while(arr[high] >= val && low < high){

high--;

}

arr[low] = arr[high];

while(arr[low] <= val && low <high){

low++;

}

arr[high] = arr[low];

}

arr[high] = val;

return high;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章