首页 >> 甄选问答 >

快速排序法的基本思路(快速排序法)

2024-05-03 15:50:23

问题描述:

快速排序法的基本思路(快速排序法),蹲一个大佬,求不嫌弃我的问题!

最佳答案

推荐答案

2024-05-03 15:50:23

大家好,我是小跳,我来为大家解答以上问题。快速排序法的基本思路,快速排序法很多人还不知道,现在让我们一起来看看吧!

第一遍 【12】 31 54 65 32 34 45 68 75 85 43 77 98

第二遍 12 【31】 54 65 32 34 45 68 75 85 43 77 98

第三遍 12 31 32 34 45 43 【54】 98 77 85 75 68 65

第四遍 12 31 【32】 34 45 43 54 98 77 85 75 68 65

第五遍 12 31 32 【34】 45 43 54 98 77 85 75 68 65

第六遍 12 31 32 34 43 【45】 54 98 77 85 75 68 65

第七遍 12 31 32 34 【43】 45 54 98 77 85 75 68 65 (左边区间所有递归完成,开始右边区间逐一递归)

第八遍 12 31 32 34 43 45 54 65 68 75 85 77 【98】

第九遍 12 31 32 34 43 45 54 【65】 68 75 85 77 98

第十遍 12 31 32 34 43 45 54 65 【68】 75 85 77 98

第十一遍 12 31 32 34 43 45 54 65 68 【75】 85 77 98

第十二遍 12 31 32 34 43 45 54 65 68 75 77 【85】 98

第十三遍12 31 32 34 43 45 54 65 68 75 【77】 85 98

快速算法每次取当前无序区的第一个记录为基准,首先取12作为tep量,起始位置i=0,终止位置j=12.

最外层循环,只要i 不等于 j 就扫描,内层循环,首先从右向左扫描,找到第一个小于tep的值,再交换这个值和tep,这样tep的左边都是比他小的数,再从左向右扫描,找到第1个大于tep的值,与tep交换,这样右边都是比tep大的数。

接下来,递归此程序,用同样方法快速排序那个tep值的左区间和右区间。

可以看做是,先得出无序区第一个在此序列里应有的位置,再依此位置为轴,排序左右区间,又分别得出左右无序区间的第一个值在序列里的应有位置。

本文到此讲解完毕了,希望对大家有帮助。

  免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。

 
分享:
最新文章