首页 > 代码库 > Python排序-冒泡排序、选择排序、插入排序
Python排序-冒泡排序、选择排序、插入排序
‘‘‘ 冒泡排序 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端 ‘‘‘ data_set = [12,45,2,48,66,2,1,56,36,90,5,10,503] for i in range(len(data_set)): ##控制相邻比较的轮数 for j in range(len(data_set)-i-1): #控制每轮相邻比较的次数 #如果前面的元素的值大于后面一个元素 互换值 if data_set[j]>data_set[j+1]: temp = data_set[j] data_set[j]=data_set[j+1] data_set[j+1]=temp #print(data_set) print(data_set)
‘‘‘ 选择排序 从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作 ‘‘‘ data_set = [12,45,2,48,66,2,1,56,36,90,5,10,503] for i in range(len(data_set)): #大圈决定轮数 也就是我们选择的次数 minIndex = i for j in range(i+1,len(data_set)): #小圈就是我们每次 选择后比较的次数 #//如果后面的元素比我选择元素还小 就互换位置 if data_set[j] < data_set[minIndex] : minIndex=j temp = data_set[i] data_set[i]=data_set[minIndex] data_set[minIndex] = temp print(data_set)
‘‘‘ 插入排序 插入排序(Insertion Sort)的基本思想是:将列表分为2部分,左边为排序好的部分,右边为未排序的部分,循环整个列表,每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 ‘‘‘ source = [12,45,2,48,66,2,1,56,36,90,5,10,503] for i in range(1,len(source)): current_val = source[i] #先记下每次大循环走到的第几个元素的值 position = i while position>0 and source[position-1]>current_val: #循环次数i大于0 and 前一位数大于后一位数 source[position] = source[position-1] # 讲后一位数放到前面 , 根据值的大小排序 position -= 1 #把前面的数放到后面 source[position] = current_val #已经找到了左边排序好的列表里不小于current_val的元素的位置,把current_val放在这里 print(source)
Python排序-冒泡排序、选择排序、插入排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。