快速排序算法的实现
Posted Learn++
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序算法的实现相关的知识,希望对你有一定的参考价值。
void swap_int1(int &i1, int &i2) { i1 = i1 + i2; i2 = i1 - i2; i1 = i1 - i2; } int partion(int *ptrA, int lenA, int beg, int end) { int index = rand()%(end-beg)+beg; swap_int1(ptrA[end], ptrA[index]); int smallPos = beg - 1; int i = beg; for(; i<end; ++i) { if(ptrA[i] < ptrA[end]) { ++smallPos; if(i != smallPos) swap_int1(ptrA[i], ptrA[smallPos]); } } ++smallPos; swap_int1(ptrA[smallPos], ptrA[end]); return smallPos; } void QuickSort(int *ptrA, int lenA, int beg, int end) { if(beg < end) { int index = partion(ptrA, lenA, beg, end); if(index >beg) QuickSort(ptrA, lenA, beg, index-1); if(index < end) QuickSort(ptrA, lenA, index+1, end); } }
排序算法就像是数字信号里边的傅里叶变换一样基础,在此继续温习一遍。
以上是关于快速排序算法的实现的主要内容,如果未能解决你的问题,请参考以下文章