相信冒泡排序已经被大家所熟知,今天看了一篇文章,大致是说在面试时end在了冒泡排序上,主要原因是不能给出冒泡排序的优化. 所以,今天就写一下python的冒泡排序算法,以及给出一个相应的优化.OK,前言结束,步入正题: 首先,大家来看一下原始的python实现的冒泡排序算法: def bubble_sort(nums): for i in range(len(nums) - 1): # 这个循环负责设置冒泡排序进行的次数(比如说n个数,则只要进行n-1次冒泡,就可以把这个n个数排序好,对吧) f
一.冒泡排序 1.1.冒泡的原理 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最后一个. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较. 2.1.冒泡排序的代码实现 def bubble_sort(seq): count=len(seq) for i in range(0,count): for j in range(i+
冒泡排序 所谓冒泡,就是将元素两两之间进行比较,谁大就往后移动,直到将最大的元素排到最后面,接着再循环一趟,从头开始进行两两比较,而上一趟已经排好的那个元素就不用进行比较了.(图中排好序的元素标记为黄色柱子) 冒泡排序动图演示 上python代码: def bubble_sort(items): for i in range(len(items) - 1): for j in range(len(items) - 1 - i): if items[j] > items[j + 1]: items
冒泡排序 冒泡排序算法又称交换排序算法,是从观察水中气泡变化构思而成,原理是从第一个元素开始比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较,就仿佛气泡逐渐从水底逐渐冒升到水面一样.如此扫描一次之后就可以确保最后一个元素位于正确的位置.接着再逐步进行第二次扫描,直到完成所有元素的排序关系为止. Python代码: import random #构造数据 data = list() for i in range(10): data.append(random.randint(0,
冒泡排序: 相邻的两个数字先进行比较,也就是li[0]和li[1]进行比较,如果不是大于的关系,就继续依次进行li[1]和li[2]比较,进行交换然后每一次扫描得到的新列表如下: li = [11,22,32,344,3,] for i in range(len(li)-1): xin = (li[i]) kai = li[i+1] if li[i] >li[i+1]: temp = li[i] li[i] = li[i+1] li[i+1]=temp print(li) for i in ra
冒泡排序,顾名思义,按照一定的规则,把数据一直排下去 直接上代码 import random def bubblesort(data): for i in range(len(data)-1,1,-1): change=True for j in range(0,i): if data[j] > data[j+1]: data[j],data[j+1]=data[j+1],data[j] change=False if change: break data=[random.randint(1,1
冒泡排序法 def maopao(): array = [2,1,3,6,5,4] #确定一组需要排序的数值列表 for i in range(len(array)-1): #大循环次数=列表长度,但range是从o开始计算的,所以要len(array)-1 for j in range(len(array)-i-1): #小循环次数=数列最大的地标数 if array[j]>array[j+1]: #当后一个数大于前一个数时 k = array[j+1] #以变量的形式保存后一个数 array
a = 0 lst = [13,5,1,7,2,6,4,5,6] while a < len(lst): # 控制次数 for i in range(len(lst)-1): if lst[i] > lst[i+1]: # 如果前一个数比后一个大,则向后移. lst[i],lst[i+1] = lst[i+1],lst[i] # 以此类推 a += 1 print(lst) lst = [22,33,44,55,66,77,88,99,101,238,345,456,567,678,789]
数组内容双位数排序: #coding:utf-8 print u"中文" a = ['] b = 0 c = 0 print a i =0 for j in range (len(a)): for i in range(0,len(a)-1): if a[i] > a[i+1]: b=a[i] a[i]=a[i+1] a[i+1]=b #a.sort() #a.sort(key = len) print a 数组内容不同位数升序: a.sort()方法 #coding:utf-8