把握宏观思想,温故而知新
一:回过头来看学过的东西,抛开资料自己动手敲一遍,如下是快速排序:
#include <iostream>
using namespace std;
inline void m_swap(int* a, int* b){
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void m_qsort(int* arr, int left, int right){
if(right <= left)
return;
int pivot = arr[right];
int i = left-1, j = right;
while(true){
while(arr[++i] < pivot) ;
while(--j > i && arr[j] >= pivot) ;
if(j > i){
m_swap(&arr[i], &arr[j]);
}
else{
break;
}
}
m_swap(&arr[i], &arr[right]);
m_qsort(arr, left, i-1);
m_qsort(arr, i+1, right);
}
int main(int argc, char* argv[])
{
int testArr[] = {0, 1, 3, 5, 3, 1, 98, 56, 21, 0};
m_qsort(testArr, 0, 9);
for(int i = 0; i < 10; i++){
cout << testArr[i] << " ";
}
cout << endl;
return 0;
}