LenleDaytoy

2020年4月19日

常见排序算法-基数排序、计数排序

摘要: 基数排序(桶排序): 设置若干个箱子,将关键字为k的记录放入第k个箱子中,然后按序号将非空的连接。而数字是有范围的,若待排元素均由0-9这十个数字组成,则只需设置十个箱子,相继按个、十、百...进行排序 平均,最坏时间复杂度 O(k*(n+m)) k是关键字的个数,如个位、十位分别就是关键字;n是元 阅读全文

posted @ 2020-04-19 13:32 LenleDaytoy 阅读(165) 评论(0) 推荐(0) 编辑

2020年4月17日

常见排序算法-选择、冒泡排序

摘要: 选择排序 选择排序是在排序过程中通过对整体的选择得到最小的元素,并把它放到所有未排序元素的最前面,不断重复,直到未排序的元素只有一个为止。 def selectSort(arr): for i in range(len(arr)-1): temp=i for j in range(i+1,len(a 阅读全文

posted @ 2020-04-17 23:18 LenleDaytoy 阅读(93) 评论(0) 推荐(0) 编辑

常见排序算法-堆排序

摘要: 堆排序 堆排序将待排序列看做一棵顺序存储的二叉树,然后将其调整为大顶堆,再将堆的最后一个元素与堆顶元素进行交换。接着将前(n-1)个元素再次调节为大顶堆,将堆顶元素与当前堆的最后一个元素交换得到次大的记录,重复该过程,直到待调整堆中只有一个元素为止,即为最小记录,此时可得到一个有序序列。 (简而言之 阅读全文

posted @ 2020-04-17 12:56 LenleDaytoy 阅读(100) 评论(0) 推荐(0) 编辑

2020年4月16日

常见排序算法-希尔排序、插入排序

摘要: 希尔排序 先将整个待排序列根据不同增量间隔依次分割成为若干子序列,分别进行直接插入排序。待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。 1 def shellSort(arr): 2 step=len(arr)//2 3 while step>0: 4 for i in range 阅读全文

posted @ 2020-04-16 16:35 LenleDaytoy 阅读(116) 评论(0) 推荐(0) 编辑

常见排序算法-归并排序

摘要: 归并排序 归并排序是利用递归将数据序列划分为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好的半子表合并为有序序列。 算法步骤: 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初位置分别为两个已经排序序列的起始位置 比较两个指针所指向的元素,选择相对小 阅读全文

posted @ 2020-04-16 16:00 LenleDaytoy 阅读(87) 评论(0) 推荐(0) 编辑

常见排序算法-快排

摘要: 快速排序 算法步骤: 首先,从数列中挑出一个元素,作为基准值 然后重新排序数列,将比基准值小的元素摆放在基准前面,比基准值大的摆在基准的后面(相同的数可以到任一边)。 再递归地把小于基准值元素的子数列和大于基准值元素的子数列按照同样的方法排序。 递归的最底部情形,是数列的大小是零或一,也就是永远都已 阅读全文

posted @ 2020-04-16 14:56 LenleDaytoy 阅读(137) 评论(0) 推荐(0) 编辑

导航