C++快速排序 精简版

来源:互联网 发布:郑州linux运维招聘 编辑:程序博客网 时间:2024/05/17 05:05

快速排序是一种基于分治技术的重要排序算法。

下面是C++快速排序精简版。

头文件 QuickSort.h:

void Swap(int &p,int &q){int temp;temp = p;p = q;q = temp;}int Partition(int InputArray[],int nLow,int nHigh){int i = nLow,j = nHigh+1;int x=InputArray[i];while (true){while (InputArray[++i]<x);        //将〈x的元素交换到中轴左边区域while (InputArray[--j]>x);        //将 >x的元素交换到中轴右边区域 if (i>=j)break;Swap(InputArray[i],InputArray[j]);}InputArray[nLow]=InputArray[j];          //将x交换到它在排序序列中应在的位置上 InputArray[j]=x;return j;}void QuickSort(int InputArray[],int nLow,int nHigh){if (nLow < nHigh){int index = Partition(InputArray,nLow,nHigh);QuickSort(InputArray,nLow,index-1);QuickSort(InputArray,index+1,nHigh);}}

测试代码:

#include"QuickSort.h"#include<iostream>using namespace std;int main(){int array[11] = {15,7, 3, 19, 4, 63, 2, 99, 18, 1, 25}; QuickSort(array, 0, 10);for(int i = 0; i < 11; i++)  cout << array[i] << "  ";       cout<<endl;      return 0;  }





原创粉丝点击