冒泡排序顾名思义,冒泡排序直观的意思是气泡越大冒的越快:),对应到我们的列表中就是数字最大的先选出来,然后依次进行。例如 myList = [1,4,5,0,6],比较方式为: 相邻的两个数字先进行比较,也就是myList[0]和myList[1],发现不是">"的关系,就继续比较myList[1]和myList[2]。。。依次进行,发现myList[2]>myList[3](及5>0),就进行交换,所以走完第一次全列表比较得到新列表[1,4,0,5,6],然后每一次扫描得到的新列表如下: ...
冒泡排序算法的运作如下:(从小到大) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。python:a = [3,99,2,11,66]
n = len(a)
for i in range(n-1): #进行n-1趟for j in range(n-i-1) :if a[...
1、变量互换a = 123
b = 456temp = a
a = b
b = temp python比较简单的变量互换:a = 123
b = 456
a,b = b,a
print(a,b) 2、将列表中最大的值放置到最后#!usr/bin/env python
# -*- coding:utf-8 -*-
li = [11,44,33,66,22]
for i in range(len(li)-1):if li[i] > li[i+1]:temp = li[i]li[i] = li[i+1]li[i+1] = tempprint(li) 3、循环嵌套冒泡排序法#!usr/bin/env python
# -*- coding:utf-8 -*-
li = [11,44,33,66,77,99,44]
fo...
冒泡排序介绍: 冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。步骤:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的...
import time
import randomtime.clock()class BubbleSort(object):"""冒泡排序算法"""def sort_inc(self, nums):"""如果数组长度为n,那么时间复杂度:一共比较n-1次,第X次 比较次数1 n-12 n-2...n-1 1时间复杂度为比较次数的和:1 + 2 + 3 + 。。。。 + n-1 = n(n-1)/2复杂度去除常数和低阶项,结果是O(n^2)"""length = len(nums)if length == 1:return numsfor i in range(length-1):for j in ...
冒泡排序(Bubble Sort),是经典的排序算法,基本上我们学习任何语言都会接触到冒泡排序。
它的算法思想是,重复地遍历要排序的列表,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历列表的工作是重复地进行直到没有再需要交换,也就是说该列表已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。
比如我们有下面这样一个列表:li = [10,8,4,7,5]
每次遍历列表每个元素,然...
a = [5, 4, 3, 2, 1, 0]
len_a = len(a)# 选择排序def selection_sort(a: list):if a is None or len_a < 2:returnfor i in range(len_a):min_index = ifor j in range(i + 1, len_a):if a[j] < a[min_index]:min_index = ja[i], a[min_index] = a[min_index], a[i]print(a)# 冒泡排序def bubble_sort(a: list):if a is None or len_a < 2:returnfor i in range(len_a, 0, -1):for j in range(i):if j == 0:continueif a[j] > a[j ...
#!/usr/bin/env python#coding:utf-8import types,sys# 简单的排序l=[1,9,2,3,-1,724,219,888]for i in range(len(l)): for j in range(i,len(l)): if l[j] > l[i]: l[i],l[j]=l[j],l[i]print l# 定义为函数并加入判断的排序def sort(list_sort): if type(list_sort) == types.ListType: # 判断输入的是否为列表 if len(list_sort)==0: # 判断列表长度 ...
def bubble_sort(blist):count = len(blist)for i in range(0, count):for j in range(i + 1, count):if blist[i] > blist[j]:blist[i], blist[j] = blist[j], blist[i]return blistblist = bubble_sort([4,5,6,7,3,2,6,9,8])print(blist)
原文:https://www.cnblogs.com/sea-stream/p/9689044.html
numbers = [11,33,55,99,6,13]print ("original=",numbers)for j in range(len(numbers) -1, -1, -1): for i in range(j): if numbers[i] > numbers[i+1]: #把数值小的数字放到顶端 numbers[i], numbers[i+1] = numbers[i+1], numbers[i] print ("i=",i,"j=",j) print (numbers)C:\Users\admin\AppData\Local\Programs\Python\Python35\python.exe D:/OneDrive/python/mao...
测试环境: 处理器i5-3230M,64位Ubuntu 14.04 Python 2.7.6, PHP 5.4.39, PHP 7.0.0-dev(2015/04/21) 测试内容: 冒泡排序:对10个升序的数进行排序,降序输出,循环1百万次. 累加求和:0+1+2+3+...+99999999 冒泡排序测试结果对比: 程序: Python PHP5 PHP7 耗时: 16.910s 14.715s 8.011s 内存: 35.8m 9.0m 12.5m 累加求和测试结果对比: 程序: Python PHP5 PHP7 耗时: 10.057s...
冒泡排序是一种简单的排序技术,它通过比较相邻的元素遍历整个列表,对它们进行排序并交换元素,直到对整个列表进行排序。算法:给定一个包含n个元素的列表L,这些元素的值或记录为L0, L1,…,Ln-1,冒泡排序用于对列表L进行排序。比较列表中的前两个元素L0和L1。如果L1 < L0,交换这些元素,然后继续下面的两个元素。重复相同的步骤,直到整个列表被排序,这样就不可能进行更多的交换。返回最终排序的列表。python冒泡排序代码如...
冒泡排序的基本思想:冒泡排序是依次走访两个相邻的数,进行比较(除最后一个数),直到排序完成 。例: arr = [49,38,04,97,76,13,27,49,55,65],交换 arr = [38,49,04,97,76,13,27,49,55,65],交换 arr = [38,04,49,97,76,13,27,49,55,65],依次走访直到排序完成代码: def bubble_sort(lists): #冒泡排序 count = len(lists) while count > 0: for i in range(count - 1): #最后一位数不进行比较 key ...
可以采用冒泡排序,每次把相邻的两个比较大小,然后把大一点儿的数据放在最后面,这样第一趟下来,最大的那个数就跑到了最后面,下一次排序就不用跟最后一个数字比较了,然后倒数第二大的数字会在倒数第二...因此可以使用两个函数,一个用于控制每一趟比较的元素个数,一个用于交换:#!/usr/bin/python
# -*- coding: UTF-8 -*-if __name__ == "__main__": N = 10# input dataprint 请输入10个数字:\nl = []for i in range(N): ...
本文给大家介绍了python冒泡排序知识,涉及到冒泡排序主要的细节问题,本文通过实例代码给大家讲解,介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧">冒泡排序注意三点:1. 第一层循环可不用循环所有元素。2.两层循环变量与第一层的循环变量相关联。3.第二层循环,最终必须循环集合内所有元素。示例代码一:1.第一层循环,只循环n-1个元素。2.当第一层循环变量为n-1时,第二层循环所有元素。s = [3, 4, 1, 6, 2, 9, 7,...