快速排序的递归算法

来源:互联网 发布:网络歌手唱的无路可退 编辑:程序博客网 时间:2024/04/29 15:15
#include "iostream"using namespace std;class sort{public:int Qsort(int* temp , int low , int high);void Swap(int& a, int& b);void show(int* finish);void sort_all(int* temp, int low, int high);};void sort::Swap(int& a, int& b){ //交换int change = a;a = b;b = change;}int sort::Qsort(int* temp, int low, int high){ //快速排序根据中轴交换int pivotkey = temp[low];while (low != high){while (temp[high] > pivotkey && low != high){high--;}Swap(temp[high], temp[low]);while (temp[low] < pivotkey && low != high){low++;}Swap(temp[high], temp[low]);}return low;}void sort::sort_all(int* temp, int low, int high){ //快速排序递归if (low < high){int privotloc = Qsort(temp, low, high);sort_all(temp , low , privotloc - 1);sort_all(temp , privotloc + 1 , high);}}void sort::show(int* finish){for (int i = 0; i < 10; i++){cout << finish[i];}cout << endl;}int main(){sort S;S.sort_all(TEMP, 0, 9);S.show(TEMP);system("pause");}

0 0
原创粉丝点击