nnpc.net
当前位置:首页 >> 快速排序 >>

快速排序

快速排序是对冒泡排序的一种改进 快速排序每趟记录最小数k 用最小数k来比较

设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序.一趟快速排序的算法是: 1)设置两个变量I

快速排序的概念很简单就是把序列分成三部分.一个中点,中点的左边都比中点“小”,右边都比中点“大” 然后再分别对左右两边进行相同的处理.可以想象这样会把序列不断切分.而当序列小于三个元素的时候,这么处理的结果就是从小到

冒泡排序: (数字都是序号 1~9 为 第一到第九个数字 假如 一共9个数字比较) 1 和 2 比较 小于就交换位置 然后1 和 3 比较 小于就交换位置 然后1 和 4 比较 小于就交换位置 然后1 和 9 比较 小于就交换位置 然后2 和 3 比较 小于就交换位置

快速排序思想:利用分治法,将原问题分解为若干个规模更小但结构与原问题相似的子问题.递归地解这些子问题,然后将这些子问题的解组合为原问题的解.快速排序划

实际上快速排序是一种分治思想;它从序列中随机寻找一个数作为key,然后把小于key的放到一个集合,大于等于key的放到一个集合,然后分别对这两个集合使用类似方法进行排序..可以想想如果小于key和大于key的两个集合都排好序了整个序列就排好序了..

假设用户输入了如下数组: 下标 0 1 2 3 4 5 数据 6 2 7 3 8 9 创建变量i=0(指向第一个数据), j=5(指向最后一个数据), k=6(赋值为第一个数据的值).我们要把所有比k小的数移动到k的左面,所以我们可以开始寻找比6小的数,从j开始,

设递增排序 先找一个基准值,然后一趟排序划分中将小于基准值放到前面,大于基准值的放到后面 然后再在左右一半里面递归排序 这个基准值为简化一般采用最左元素 排序过程 :第一趟5 6 3 4 7 8 第二趟4 3 5 6 7 8 第三趟3 4 5 6 7 8 第四趟3 4 5 6 7 8 其中每一趟的划分过程细节参看教材

基本思想是:在待排序的n个记录中任取一个记录(通常取第一个记录),把该记录放入最终位置后,整个数据区间被此记录分割成两子区间.所有关键字比该记录关键字小的放置在前子区间中,所有比它大的放置在后子区间中,并把该记录排在这两个子区间的中间,这个过程称为一趟快速排序. 之后对所有的两个子区间分别重复上述过程,直至每个子区间内只有一个记录为止.简而言之,每趟排序使表的第一个元素入终位,将数据区间一分为二,对于子区间按递归方式继续这种划分,直至划分的子区间长为1.

lhxq.net | wkbx.net | so1008.com | pxlt.net | 3859.net | 网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com