精华内容
下载资源
问答
  • 冒泡排序python

    2020-12-19 09:36:46
    冒泡排序 问题描述: 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,...

    冒泡排序

    问题描述:

    冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。

    def bubblesort(arr, order=0):
        """
        冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,
        一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,
        也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
        :param arr:
        :param order: 升序还是降序,大于等于0升序,小于0降序
        :return:
        """
        n = len(arr)
        judge = True
        for i in range(n):
            for j in range(n - i - 1):
                if arr[j] > arr[j + 1] and int(order) >= 0 or arr[j] < arr[j + 1] and int(order) < 0:
                    arr[j], arr[j + 1] = arr[j + 1], arr[j]
                    judge = False
            if judge:
                break
        return arr
    
    展开全文
  • 冒泡排序 python

    2020-05-25 14:59:48
    ''' 比较相邻的元素。如果第一个比第二个大,就交换它们两个...重复步骤1~3,直到排序完成。 ''' def bubbleSort(list): for i in range(len(list) - 2): for j in range(len(list) - 1 - i): if list[j] > list
    '''
    比较相邻的元素。如果第一个比第二个大,就交换它们两个;
    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
    针对所有的元素重复以上的步骤,除了最后一个;
    重复步骤1~3,直到排序完成。
    '''
    def bubbleSort(list):
        for i in range(len(list) - 2):
            for j in range(len(list) - 1 - i):
                if list[j] > list[j + 1]:
                    list[j], list[j + 1] = list[j + 1], list[j]
        print(list)
    
    
    if __name__ == '__main__':
        a = [12, 34, 15, 2, 45, 48, 231, 5, 13]
        bubbleSort(a)
    
    
    
    展开全文
  • 冒泡排序(Bubble Sort)一、什么是冒泡排序冒泡排序是一种简单的排序算法。其基本思想是:两两比较相邻元素的大小,若两元素反序,则交换两元素位置,直至没有反序为止。假设从小到大排序,两两比较之后,较大的慢慢...

    冒泡排序(Bubble Sort)

    一、什么是冒泡排序

    冒泡排序是一种简单的排序算法。其基本思想是:两两比较相邻元素的大小,若两元素反序,则交换两元素位置,直至没有反序为止。

    假设从小到大排序,两两比较之后,较大的慢慢往后排,较小的数慢慢往前排,最终完成从小到大的排序。这个过程类似于水中冒泡,所以叫冒泡排序。

    二、算法的基本描述

    假设有n(n>1)个元素需要按从小到大顺序排列,冒泡排序算法如下:

    第一次遍历:

    1、比较第1个元素与第2个元素的大小,若第1个元素大于第2个元素,则交换两者位置;若第1个元素小于等于第2个元素,则不交换位置;

    2、接着比较交换后第2个元素和第3个元素的大小并按结果交换位置;依次比较相邻元素直至第(n-1)个元素和第n个元素完成比较及位置交换,总计比较(n-1)次,将最大值放在序列最末位;

    第二次遍历:

    将第二大的元素放在倒数第二位;

    … …

    第(n-1)次遍历:

    完成序列从小到大排序

    三、算法举例

    假设用冒泡排序算法给序列[11,3,36,60,72,38,56]进行排序,其过程如下:第一次遍历:比较6次(即n-1),将最大数72放到末尾;

    第二次遍历:比较5次(即n-2),将60放到倒数第二位;

    … …

    第六次遍历:比较1次(即n-(n-1)),完成序列排序,即:[3,11,36,38,56,60,72]

    四、算法时间复杂度从上边举例可以发现,冒泡算法完成排序需要进行的;两两比较的次数总计为:

    Sum=(n-1)+(n-2)+(n-3)+… … +2+1=n(n-1)/2=O(n2)

    当n较大时,完成冒泡排序所需的两两比较次数就会很大,比较要完成100个数的从小到大排序,则需要计较;完成200个数的比较则需要19900次。因此,冒泡排序算法适合数据元素较少的排序,对于数据元素较多的排序,则会显著增加排序时间。

    五、用python实现冒泡排序算法

    算法如下:(从小到大排列)

    代码中,第二个for循环的范围为range(length-i-1),这是因为上一次循环已经将length-i-1之前的元素进行过排序了,避免重复无用的循环

    运行结果如下:

    如果要实现从大到小排序,将代码中第15行的if array[j] > array[j+1]:改为

    if array[j]

    注:python实现冒泡排序算法原码

    '''python实现冒泡排序算法原码'''

    '''冒泡排序'''

    def bubblesort(array):

    length = len(array)

    for i in range(length):

    for j in range(length-i-1):

    if array[j] > array[j+1]:

    array[j+1], array[j] = array[j], array[j+1]

    return array

    list =[11,3,36,60,72,38,56]

    list_sorted = bubblesort(list)

    print("冒泡排序结果:",list_sorted)

    展开全文
  • 冒泡排序和快排的python实现:data = [1, 3, 5, 10, 4, 7]times = 0"冒泡排序"for i in range(len(data)):for j in range(len(data) - i - 1):if data[j] > data[j + 1]:tmp = data[j + 1]data[j + 1] = data[j]...

    冒泡排序和快排的python实现:

    data = [1, 3, 5, 10, 4, 7]

    times = 0

    "冒泡排序"

    for i in range(len(data)):

    for j in range(len(data) - i - 1):

    if data[j] > data[j + 1]:

    tmp = data[j + 1]

    data[j + 1] = data[j]

    data[j] = tmp

    times += 1

    print("冒泡排序")

    print(data)

    print("times:%d" % times)

    "改进冒泡排序,插入标志位,提前结束排序"

    data = [1, 3, 5, 10, 4, 7]

    times = 0

    for i in range(len(data)):

    pos = 0

    for j in range(len(data) - i - 1):

    if data[j] > data[j + 1]:

    tmp = data[j + 1]

    data[j + 1] = data[j]

    data[j] = tmp

    pos = 1

    times += 1

    if pos == 0:

    break

    print("改进冒泡排序")

    print(data)

    print("times:%d" % times)

    "快排,选第一个数为基准值,小数放在基准左边,大数放在基准右边"

    data = [1, 3, 5, 10, 4, 7]

    def exchage(x, y):

    return y, x

    def qsort(left , right):

    if left > right:

    return

    p = data[left]

    i = left

    j = right

    while i != j:

    while data[j] > p and i < j:

    j -= 1

    data[i],data[j] = exchage(data[i],data[j])

    while data[i] < p and i < j:

    i += 1

    data[i],data[j] = exchage(data[i],data[j])

    qsort(left,i-1)

    qsort(i+1,right)

    qsort(0,len(data)-1)

    print("quick sort")

    print(data)

    输出结果:

    冒泡排序

    [1, 3, 4, 5, 7, 10]

    times:15

    改进冒泡排序

    [1, 3, 4, 5, 7, 10]

    times:12

    quick sort

    [1, 3, 4, 5, 7, 10]

    展开全文
  • 冒泡排序python实现

    2020-04-30 23:58:06
    冒泡排序python实现 去年写过一篇冒泡排序python实现,外层多了一层循环,这里更正过来~ 算法思想 冒泡排序(以从小到大排序为例)的思想在于,不断地将当前元素与后一个元素进行比较,如果当前元素较小,则调换当前...
  • 冒泡排序原理:代码:def bubble_sort2(arr):for j in range(len(arr) - 1, 0, -1): # [n-1, n-2, ....2, 1]for i in range(0, j):if arr[i] > arr[i + 1]:arr[i], arr[i + 1] = arr[i + 1], arr[i]bubble_sort2...
  • 简介冒泡排序(Bubble Sort)是经典排序算法之一,属于交换排序的一种,基本的排序思路是:从头开始两两元素进行比较,大的元素就往上冒,这样遍历一轮后,最大的元素就会直接筛选出来。然后再重复上述操作,即可完成...
  • 冒泡排序 python实现

    2020-04-13 11:30:48
    冒泡排序 python实现简介思路分析代码引用 简介 冒泡排序(Bubble Sort),是一种较简单的排序算法。 它重复地遍历要排序的元素列,依次比较两个相邻的元素,如果顺序错误就交换这两个元素,直到没有相邻元素需要...
  • 点击关注 不迷路冒泡排序是什么冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们...作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书...
  • /usr/bin/env python# -*- coding:utf-8 -*-def mp_sort(numbers):for i in range(len(numbers)-1):for j in range(len(numbers) - i -1):if numbers[j] > numbers[j+1]:numbers[j],numbers[j+1] = numbers[j+1],n.....
  • 今天看了兄弟连php里面的冒泡排序与快速排序,想了下应该可以用python实现。冒泡排序函数:defmysort(x):len1=len(x)for i in range(len1-1,0,-1):for j inrange(0,i):if x[j]>x[j+1]:x[j],x[j+1]=x[j+1],x[j]...
  • 本文,用python对一串数字进行排序,用最简单的冒泡排序算法。工具/原料python3.6time模块(用来查看运行时间)random模块(用来生成随机序列)jupyter编译器方法/步骤1先来构造一个随机序列:import randomshuzi = ...
  • 什么是冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再...
  • 说到算法中的排序,冒泡排序是最简单的一种排序算法了,甚至不学数据结构与算法的同学都会使用它。但是你有没有想过可以怎么优化?什么是冒泡排序:就像水慢慢烧开,气泡从下往上越来越大那样,第一次循环都把n个...
  • 冒泡排序(Bubble Sort)一、什么是冒泡排序冒泡排序是一种简单的排序算法。其基本思想是:两两比较相邻元素的大小,若两元素反序,则交换两元素位置,直至没有反序为止。假设从小到大排序,两两比较之后,较大的...
  • 今天用Python 3版本实现选择排序和冒泡排序。选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素...
  • 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。【常见的排序算法分类】【基础定义】【十大常见排序算法】具体解析:关于时间复杂度平方阶...
  • 冒泡排序注意三点:W WW.002PC .COM对《Python冒泡排序注意要点实例详解》总结来说,为我们学习编程很实用。1. 第一层循环可不用循环所有元素。2.两层循环变量与第一层的循环变量相关联。3.第二层循环,最终必须循环...
  • 冒泡排序1、题目假设有一个列表 list = [5,4,3,2,1]要求:按从小到大的顺序排序2、分析● 冒泡排序的思路两两比较,互换位置,每一轮选出最大(小)的数放到列尾● 图解① 第一轮比较第一轮比较② 第二轮比较③ 第三轮...
  • 排序必学系列 冒泡排序 python 下面展示一些 内联代码片。 思想: 使用两个游标,每一轮排序后,最大的数字在最后 第二轮,倒数第二大的数字排最后 第三轮,倒数第三大的数字排最后 arr = [23,41,25,54,18,14...
  • (通俗易懂 图文并茂)算法入门之冒泡排序Python

    千次阅读 多人点赞 2020-05-17 19:06:52
    文章目录前言什么是冒泡排序Python代码补充说明 前言 这里我们就直接简单粗暴的给原理跟代码看完之后在看一些比较官方的说明!! 如果开头看不明白的先看 补充说明。 如果只想看代码的直接点目录的 Python代码 有两...
  • 排序必学系列 冒泡排序 python 下面展示一些内联代码片。 方法二: for j in range(0,length-1): for i in range(0,length-1-j): 等价于: for j in range(length-1,0,-1): # 每次 j-1,j = 0 时停止循环 for i ...
  • 排序算法之冒泡排序 排序算法主要是对给定的顺序表进行元素排序,升序或者降序。最简单的思路就是两两对比,找出最大的,放到位置上,然后继续在剩下的元素中找出次大的放到位置上,如此往复。这就是冒泡的思想,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,264
精华内容 2,505
关键字:

冒泡排序python

python 订阅