快速排序Quick_Sort

来源:互联网 发布:淘宝店铺上传宝贝技巧 编辑:程序博客网 时间:2024/05/19 01:31
#include<iostream>#include<algorithm>#define ElemType int using namespace std;typedef struct SqList{ElemType *data;int length;}SqList;void Create_SqList(SqList& L){do{cout << "线性表长:";cin >> L.length;} while (L.length < 0);L.data = new ElemType [L.length];for (int i = 0; i < L.length; i++)cin >> L.data[i];}int SqList_Traverse(SqList& L){if (!L.length){cout << "Empty SqList!" << endl;return 0;}for (int i = 0; i < L.length; i++)cout << L.data[i] << ' ';cout << endl;return 1;}int Partition(SqList& L, int low, int high){ElemType pivotkey = L.data[low];//枢轴量while (low < high){while ((low < high) && (L.data[high] >= pivotkey))--high;L.data[low] = L.data[high];while ((low < high) && (L.data[low] <= pivotkey))++low;L.data[high] = L.data[low];}L.data[low] = pivotkey;return low;}void Quick_Sort(SqList& L, int low, int high){if (low < high){int pivotloc = Partition(L, low, high);//枢轴量的位置Quick_Sort(L, low, pivotloc - 1);Quick_Sort(L, pivotloc + 1, high);}}void main(){SqList L;Create_SqList(L);Quick_Sort(L, 0, L.length-1 );SqList_Traverse(L);system("Pause");}

0 0
原创粉丝点击