【算法】快速排序的递归实现算法(两种实现) | 您所在的位置:网站首页 › 选择排序的递归算法是什么 › 【算法】快速排序的递归实现算法(两种实现) |
思想:
、 具体操作:1.先以第一个元素为key(枢纽),设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2.然后i++开始往后移动,j--开始往前移动,直到找到一个i,第i位的值大于key,再找到一个j,第j位的值小于key 3.则交换第i位和第j位的值 4.继续操作,重复2和3步骤,直到i=j;则将现在的i位置上的值和key交换。这个时候key前正好都是小于它的数,后面都是大于它的数,从而key正好到了排好序后正确的位置。 5,之后将第i位之前和i之后的数分别独立出,进行1,2,3,4操作,直到最后每个独立序列中支有一个元素,那么快排完成。 按照此方法: 输入:先输入进行合并排序元素的个数,然后依次随机输入(或随机生成)每个数字。 输出:元素排序后的结果。 示例:输入:8 9 1 2 4 8 6 15 8,输出:1 2 4 6 8 8 9 15 #include using namespace std; int div(int a[],int left,int right){ int key=a[left]; //第一个值作为基准值 int i=left,k=right; // 将< x的元素交换到左边区域 // 将> x的元素交换到右边区域 while(i |
CopyRight 2018-2019 实验室设备网 版权所有 |