算法
文章平均质量分 67
DadaBlog
Turn notes into blogs
展开
-
初级排序算法
选择排序对于长度为N的数组,选择排序需要约N^2/2次比较和N次交换特点:运行时间和输入无关;数据移动次数最少(N)def Exch(list,min,i): tmp=list[i] list[i]=list[min] list[min]=tmpdef SelectSort(list): for i in range(len(list)): min=i for j ...原创 2019-08-04 18:13:41 · 232 阅读 · 0 评论 -
排序算法之归并排序
归并操作:将两个有序的数组归并成一个更大的有序数组。归并排序:将数组递归的分成两半分别排序,然后将结果归并起来。归并算法可以将任意长度为N的数组排序所需时间和NlogN成正比,然鹅,它所需的额外空间与N成正比。原地归并原地归并适用于两个不同的有序数组,可以将两个有序数组归并为一个更大的有序数组。归并步骤(Merge):将原数组数据拷贝到备用空间中设置数组左边界lo=0、右边界hi=9...原创 2019-08-25 16:29:05 · 229 阅读 · 0 评论 -
排序算法之快速排序
快速排序的特点是原地排序,且将长度为N的数组所需的时间和NlgN成正比。基本算法快速排序是一种分治的排序算法,将数组排序的方式是当两个子数组都有序时整个数组也就有序了。快速排序的关键在于切分(partition),先使用切分方法将a[j]放到合适位置,使a[lo]到a[j-1]中的元素都不大于·a[j],a[j+1]到a[hi]的元素都不小于a[j]。然后,再递归调用将其他位置的元素排序。...原创 2019-08-25 17:04:08 · 185 阅读 · 0 评论