还剩2页未读,继续阅读
文本内容:
《用Python实现快速排序的核心代码程序》快速排序是目前最流行的内部排序算法,最初由基准分割partition算法发展而来它的基本思想是首先先从序列中分出一个作为基准其余的数据依据与基准数据相比较大小分别排列其左右,然后再采用递归,分别对基准数据的左右子序列进行操作,以此达到将序列集中排列变成有序序列的目的使用Python实现快速排序核心代码程序如下defquick_sortarraystartend:#判断low是否小于high如果为false直接返回ifstart=end:returnlow=starthigh=end#设置基准数key=array[start]whilelowhigh:#如果low与high未重合,high指针左移whilelowhighandarray[high]=key:high-=1将比基准小的元素移到低端array[low]=array[high]如果low与high未重合,low指针右移whilelowhighandarray[low]=key:low+=1将比基准大的元素移到高端array[high]=array[low]设置基准array[low]=key对基准左边的数进行递归排序quick_sortarraystartlow-1对基准右边的数进行递归排序quick_sortarraylow+1endreturnarrayarr=
[159865742]res=quick_sortarr0lenarr-1printres上面的代码实现的是快速排序的核心算法,它的思想主要有以下几个步骤
1、选择基准数值;
2、使用两个指针分别指向待排序序列的首位;
3、首先从后向前找出比基准数值小的元素;
4、然后将找到的小于基准数值的元素放到前面;
5、接着从前向后找出比基准数值大的元素;
6、将找到的大于基准数值的元素放到后面;
7、重复上述操作,直至满足条件;
8、最后将得到的基准元素放置到指定位置;
9、然后再对基准元素的左右部分重复上面的操作,直至将序列集中表变成有序序列此外,希尔排序也是一种较快的排序方法,它的思想是将数组分割成多组进行排序,先分割成小组,再对小组里的元素进行插入排序,随机将其分割成越来越小的组,直至所有分组里只有一个元素为止,整个过程实现有序化使用Python实现希尔排序的核心代码如下、、、defshell_sortarraystep:iflenarray=1:return从小组中选择step将分组whilestep0:#对小组准备进行插入排序foriinrangesteplenarray:index=itemp=array[index]#把比基准值小的元素整体向前移动,直至比基准值大的元素whileindex0andarray[index-step]temp:array[index]=array[index-step]index一二steparray[index]=temp#对下一个小组进行排序#每次把step减为原来的一半step//=2returnarrayarr=
[745916382]res=shell_sortarr4printres以上就是使用Python实现了快速排序和希尔排序的核心代码程序,实现过程中采用了分治法,递归思想,以及其他一些算法思想,能够有效地实现排序的功能。