快速排序.ppt
- 文档编号:109801
- 上传时间:2022-10-03
- 格式:PPT
- 页数:25
- 大小:179.50KB
快速排序.ppt
《快速排序.ppt》由会员分享,可在线阅读,更多相关《快速排序.ppt(25页珍藏版)》请在冰豆网上搜索。
快速排序,快速排序(QuickSort),请同学们到讲台签到,第三次课.分治法(divideandconquer):
将一个问题分解成几个类似的小规模子问题,将子问题的解合成为原问题的解。
子问题的解也遵循相同的策略,直至子问题可以直接解决。
快速排序(QuickSort)的基本思想是,将待排记录分割成独立的两部分,其中一部分记录的关键字均小于另一部分记录的关键字,然后分别对这两部分记录继续进行排序,以达到整个序列有序。
i,j,temp,45,快速排序:
对于给定的数组内的数据,如何排序?
在排序之前,先设定一个哨兵值,一般选择a0,将其值赋给一个临时变量:
temp=a0;,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
然后开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
然后开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
然后开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
当ai=temp,aj=temp两个条件同时满足时,交换ai、aj的值,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
当ai=temp,aj=temp两个条件同时满足时,交换ai、aj的值,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
当ai=temp,aj=temp两个条件同时满足时,交换ai、aj的值,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
当ai=temp,aj=temp两个条件同时满足时,交换ai、aj的值,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
当ai=temp,aj=temp两个条件同时满足时,交换ai、aj的值,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
交换完后,继续开始左右移动下标i、j值,直到(ai=temp且aj=temp)或(i=j)停止.,i,j,temp,45,快速排序:
与合并排序类似,合并排序为平分数据序列,而快速排序通过确定第一个元素在数组中的位置将序列分为左右两部分。
这时45的位置在数组中就已经确定了,接下来我们只需要对04数组元素以及69数组元素两部分进行排序即可,原理同上。
例如:
确定45在数组中的位置如何编程实现?
intqSort_pos(inta,intlow,inthigh)inttemp=alow,i=low,j=high,tmp;while(i=temp),voidswap(int*a,int*b)inttemp;temp=*a;*a=*b;*b=temp;,voidqSort(inta,intlow,inthigh)intpos;if(lowhigh)pos=qSort_pos(a,low,high);qSort(a,low,pos-1);qSort(a,pos+1,high);,递归代码,与合并排序类似,快速排序算法:
状态:
Accepted测评机:
Xeond6得分:
100分提交日期:
2010-10-2423:
02:
00有效耗时:
1031毫秒测试结果1:
通过本测试点|有效耗时47ms测试结果2:
通过本测试点|有效耗时47ms测试结果3:
通过本测试点|有效耗时46ms测试结果4:
通过本测试点|有效耗时63ms测试结果5:
通过本测试点|有效耗时94ms测试结果6:
通过本测试点|有效耗时125ms测试结果7:
通过本测试点|有效耗时109ms测试结果8:
通过本测试点|有效耗时219ms测试结果9:
通过本测试点|有效耗时234ms测试结果10:
通过本测试点|有效耗时47ms,合并排序算法:
状态:
Accepted测评机:
Xeost5得分:
100分提交日期:
2010-10-2013:
24:
00有效耗时:
3297毫秒测试结果1:
通过本测试点|有效耗时62ms测试结果2:
通过本测试点|有效耗时47ms测试结果3:
通过本测试点|有效耗时63ms测试结果4:
通过本测试点|有效耗时94ms测试结果5:
通过本测试点|有效耗时312ms测试结果6:
通过本测试点|有效耗时453ms测试结果7:
通过本测试点|有效耗时344ms测试结果8:
通过本测试点|有效耗时922ms测试结果9:
通过本测试点|有效耗时938ms测试结果10:
通过本测试点|有效耗时62ms,统计数字测试时间,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快速 排序