python数据结构——选择排序、冒泡排序代码实现详细过程
2019-03-28 18:26
399 查看
def select(alisst): """选择排序""" for i in range(len(alisst) - 1): # 循环次数 min_index = i # 将第一个默认为最小的 for j in range(i + 1, len(alisst)): # 从i后一个进行循环和i进行比较 if alisst[j] < alisst[i]: # 循环出来的j 小于i min_index = j # 将j作为最小值 if min_index != i: # i不是最小值 alisst[i], alisst[min_index] = alisst[min_index], alisst[i] # 循环出来的i和定义出来的最小值调换 # 最优时间复杂度为:O(n^2) # 最坏时间复杂度为:O(n^2) # 稳定性:不稳定(有相同最大元素会改变原有顺序) li = [12, 45, 86, 52, 49, 32] select(li) print(li)
结果:
def bubbling(alist): """冒泡""" for j in range(len(alist) - 1): # 遍历需要比较的数到倒数第二个就行即len(alist)-1 count = 0 for i in range(len(alist)-1 - j): # 遍历需要比较的数 范围:减去j循环过的 if alist[i] > alist[i + 1]: # 这个和下一个进行比较 alist[i], alist[i + 1] = alist[i + 1], alist[i] # 互换位置 count += 1 if 0 == count: break # 最优时间复杂度为O(n) # 最坏时间复杂度为O(n^2) # 稳定性:稳定,不改变原有的顺序 li = [77, 52, 54, 5, 89, 64, 699] bubbling(li) print(li)
结果:
# li = [77, 52, 54, 5, 89, 64, 699] # li2 = [] # while len(li): # li2.append(min(li)) # li.remove(min(li)) # print(li2)
结果:
相关文章推荐
- Python实现冒泡排序、选择排序、插入排序、快速排序、归并排序、二分法查找算法(基于《算法导论》伪代码)
- (九)数据结构之简单排序算法实现:冒泡排序、插入排序和选择排序
- C语言实现选择排序、冒泡排序和快速排序的代码示例
- python实现2种简单的排序算法--冒泡排序和选择排序
- 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序
- 基础排序——冒泡排序、选择排序、插入排序的讲解、代码实现
- Python实现各类数据结构和算法---直接选择排序
- 排序算法之快速排序,冒泡排序用python代码实现
- Python实现 -- 冒泡排序、选择排序、插入排序
- 数据结构 - 只需选择排序(simple selection sort) 详细说明 和 代码(C++)
- 选择排序、插入排序、冒泡排序python实现
- JavaScript 冒泡排序和选择排序的实现代码
- Java中的选择排序和冒泡排序思想及代码实现
- 冒泡排序和选择排序二分查找代码实现
- python实现最简单的三种排序,冒泡排序、选择排序、插入排序
- Python-数据结构-最全六种排序代码实现
- 【Java】数组的冒泡排序和选择排序(原理+代码实现)
- Python实现冒泡排序,选择排序,插入排序
- 排序基础之插入排序、冒泡排序、选择排序详解与Java代码实现
- Python选择排序、冒泡排序、合并排序代码实例