教科书算法:
[图解快速排序]
觉得比较好的算法(有点争议,但是可以参考):
本人代码:
#include <iostream>
using namespace std;
void quickSort(int *A, int k, int l);
int main() {
int A[] = { 9, 5, 0, 2, 8, 3, 1, 6, 7, 4 };
for (int i = 0; i < 10; i++){
cout << A[i] << "\t";
}
cout << "\n ========================" << endl;
int k = 0, l = 9;
quickSort(A, k, l);
for (int i = 0; i<10; i++){
cout << A[i] << endl;
}
return 0;
}
void quickSort(int *A, int k, int l){
int k1 = k;
int l1 = l;
if (l - k <1) return;
int temp = A[k];
while (k < l){
while (A[l] >= temp && k<l){
l--;
}
A[k] = A[l]; k++;
while(A[k]<=temp && k<l){
k++;
}
A[l] = A[k]; l--;
}
int x = k;
A[k] = temp;
quickSort(A, k1, x-1);
quickSort(A, x+1, l1);
return;
}
网友评论