算法
文章平均质量分 63
wfw123123
测试技术栈
展开
-
Python实现快速排序
'''快速排序原理:对于给定的一组序列,选择一个基准数,通过一论排序后,将原序列分为两部分,使得前面的比后面的小,然后再依次对前后进行拆分并排序,递归该过程,直到序列中所有数据均有序为止。算法过程如下:1.拆分:将序列拆分成2个非空子序列2.递归求解:通过递归调用快速分别对2个子序列进行排序3.合并:把排序好的2个子序列进行合并例如数组:{49,38,65,97,76,13,27,49},具体排序过程如下:第一次排序过程:初始化:[49,38,65,97,76,13,27,49]第..原创 2021-09-12 14:02:43 · 220 阅读 · 0 评论 -
Python实现归并排序
'''归并排序原理:对于给定的一组数据,首先将要排序长度为n的列表或者数组折中分成两个子列表或者数组长度分别为(n/2),第二次则分别将子序列分成总共4个子序列 每个子序列长度为(n/2/2) 以此继续分下去,直到子序列只剩下1个元素不能再分而停止.最后将其两两归并,反复执行此过程,直到得到一个有序序列为止。例如数组:{38,65,97,76,13,27},具体排序过程如下:拆分第1次:[38 65 97] [76 13 27]第2次:[38 65] [97] [76 13] [27].原创 2021-09-12 13:51:09 · 106 阅读 · 0 评论 -
Python实现插入排序
'''插入排序原理:将待排序序列的第一个元素当做已排序序列,其他的元素当做未排序序列,取未排序的第一个元素与已排序的最后一个元素进行比较,如果未排序的第一个元素小于已排序的最后一个元素则交换位置,交换位置后继续与前一个相邻位置的元素进行比较,当不需要交换时,则次轮插入完成。继续循环上面步骤,每进行一轮插入,已排序的序列加1,未排序的序列减1,一直到列表中的元素全部被插入到已排序的序列中为止,插入排序完毕。例如数组:{38,65,97,76,13,27,49},具体排序过程如下:第1轮插入38以后.原创 2021-09-12 13:49:19 · 105 阅读 · 0 评论 -
Python实现选择排序
'''选择排序的原理:对于给定的一组数,经过第一轮比较后得到最小的数,然后将这个最小的数与第一个进行交换位置,接着对不包含第一个数以外的其他数进行第二轮比较,再次得到最小的数并与第二个数进行位置交换,重复该过程,直到进行比较的数只有一个时为止。例如数组{38,65,97,76,13,27,49},具体排序过程如下:第一次排序后:13 [65,97,76,38,27,49]第二次排序后:13 27 [97,76,38,65,49]第三次排序后:13 27 38 [76,97,65,49]第四次排.原创 2021-09-11 17:33:46 · 150 阅读 · 0 评论 -
Python实现冒泡排序
'''冒泡排序原理:比较列表中相邻的两个元素大小,如果第2个元素比第1个元素大,就交换它俩的位置,从列表的开始到结尾,依次对每一组相邻的2个元素都进行比较,这样最大的元素就排到了最前面,第一轮排序结束。继续循环上面步骤,一直到只剩下一个元素没有排序为止,排序结束例如数组:{38,65,97,76,13,27,49},具体排序过程如下:第1轮排序:97 [65 76 38 27 49 13]第2轮排序:97 76 [65 38 27 49 13]第3轮排序:97 76 65 [38 27 49.原创 2021-09-11 17:33:34 · 134 阅读 · 0 评论