【算法】快速排序的递归实现算法(两种实现) 您所在的位置:网站首页 选择排序的递归算法是什么 【算法】快速排序的递归实现算法(两种实现)

【算法】快速排序的递归实现算法(两种实现)

2024-03-29 22:29| 来源: 网络整理| 查看: 265

思想:

具体操作:

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 实验室设备网 版权所有