`

排序算法(五)---冒泡排序(交换排序)

阅读更多
冒泡排序属于交换排序

基本思想:
  在待排序数列中,自上而下对相邻的两个元素进行比较和调整,小的上冒,大的下沉

时间复杂度:
  最好情况:正序有序,只需比较n次,O(n)
  最坏情况:反序有序,需要比较(n-1)+(n-2)+...1次,故O(n*n)

稳定性:稳定

代码示例:bubble_sort.py
def bubble_sort(l):
    length = len(l)
    for i in range(0, length):
        for j in range(0, length-i-1):
            if l[j] > l[j+1]:
                tmp = l[j]
                l[j] = l[j+1]
                l[j+1] = tmp

if __name__ == '__main__':
    l = [52,13,65,21,18,72,43,39,58,9]
    bubble_sort(l)
    print('result:'+ str(l))

分享到:
评论

相关推荐

    C语言排序算法---冒泡排序法

    冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的...

    排序算法 -- 冒泡排序

    冒泡排序是一种基础且经典的排序算法,它的基本思想是通过不断地交换相邻的逆序元素,使得每一轮排序后,最大的元素“浮”到数组的末尾。这个过程就像水底下的气泡逐渐升至水面一样,因此得名“冒泡排序”。 在Java...

    VC++多线程实现三种排序算法比较----冒泡排序、快速排序、归并排序

    首先,冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。尽管冒泡...

    TIA博途-冒泡排序SCL算法-全局FC库文件-V15版本.zip

    冒泡排序是一种简单的排序算法,它重复地遍历待排序的列表,比较每对相邻元素,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复进行直到没有再需要交换,也就是说该列表已经排序完成。这个算法的名字由来...

    排序算法实现-支持插值排序+选择排序+冒泡排序-sort.zip

    **冒泡排序**是最基础的排序算法之一,它通过不断地交换相邻的逆序元素来逐步推进排序。在每一轮迭代中,最大的元素会“冒泡”到数组的末尾。这个过程重复n-1轮,每轮都能确保一个元素到达正确位置。冒泡排序的时间...

    最快的排序算法 计算机最快的算法-史上14个最快速算法:孩子的计算能力爆表!大脑堪比计算机!...,排序算法数据结构

    冒泡排序算法是一种简单的排序算法,它的工作原理是通过不断地比较相邻元素,并交换它们以达到排序的目的。冒泡排序算法的时间复杂度为O(n^2),因此它适合小规模的数据排序。 2.选择排序算法 选择排序算法也是一种...

    冒泡排序-排序过程 冒泡排序-排序过程

    冒泡排序是一种简单的排序算法,其基本思想是通过重复地遍历要排序的列表,比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复进行的,直到没有再需要交换的元素,也就是说该列表已经...

    算法设计与分析-1排序算法性能分析-冒泡/选择/插入/合并/快速排序-pre ppt

    冒泡排序通过不断交换相邻的错误顺序元素来逐渐排序,每一轮排序将最大(或最小)的元素“冒泡”到正确的位置。同样,其时间复杂度也是O(n^2),适用于小规模数据排序。 **3. 插入排序(Insertion Sort)** 插入排序...

    C语言冒泡、插入法、选择排序算法分析-word版本

    冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换,也就是说该数列已经排序完成。 - **比较次数...

    排序算法--免费

    本文将深入探讨标题和描述中提到的一些基本排序算法,包括选择排序、冒泡排序、插入排序、希尔排序、堆排序、快速排序以及归并排序,并结合C++编程语言进行讲解。 1. **选择排序(Selection Sort)** - 选择排序是一...

    数据结构:交换排序-冒泡排序实验指导

    ### 数据结构:交换排序-冒泡排序实验指导 #### 实验背景与目标 在计算机科学领域,数据结构和算法是核心研究对象,其中排序算法作为基础且重要的算法之一,广泛应用于各类数据处理场景。本实验旨在深入理解并掌握...

    C#-基于C#实现的冒泡排序算法-Bubble-Sort.zip

    冒泡排序是一种基础且历史悠久的排序算法,它通过重复遍历待排序的序列,比较相邻元素并根据需要交换它们的位置,来逐步将序列中的大值“冒”到序列的末尾。在C#中实现冒泡排序,可以深入了解C#的基础语法、控制流...

    c++排序算法-冒泡排序

    冒泡排序是一种基础且经典的计算机科学排序算法,尤其在C++编程中常见。它通过不断地比较相邻元素并根据需要进行交换,逐步将较大的元素“冒泡”到序列的末尾,从而实现升序排列。这一过程可以理解为一个逐层推进的...

    《数据结构与算法》-李春葆 实验报告-典型排序算法实践-快速排序

    同时,我们也可以对本课程学习的意见建议,即快速排序是由冒泡排序改进而得的,所以一定要熟练掌握冒泡排序,才能更好的理解快速排序。 快速排序算法是一种重要的排序算法,它具有排序速度快、就地排序的优点,但也...

    快速排序算法和冒泡排序效率对比

    快速排序和冒泡排序是两种常见的排序算法,它们在计算机科学中扮演着重要的角色,特别是在数据处理和优化程序性能方面。本篇文章将深入探讨这两种排序算法的原理、效率以及它们在C#编程语言中的实现。 首先,让我们...

    冒泡排序 算法(冒泡,选择,插入,数组排序)

    冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这...

    最快的排序算法 C语言最简单的排序算法冒泡排序并返回排序前索引序号,排序算法数据结构

    冒泡排序是一种简单的排序算法,它的主要思想是通过不断地比较相邻元素,并交换它们以达到排序的目的。在C语言中,冒泡排序的实现非常简单,下面我们将详细介绍冒泡排序的实现过程。 冒泡排序的实现步骤: 1. 首先...

    详解Java常用排序算法-冒泡排序

    冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换位置。这个过程持续对数列的末尾进行,直到整个数列都排序完成。 冒泡排序的工作原理是通过...

    简单排序算法--类的简单使用

    在这个例子中,可能会有一个类`SortAlgorithms`包含各种排序算法的成员函数,如冒泡排序、选择排序、插入排序、快速排序等。另一个类`UserInterface`则负责处理用户交互和控制执行哪种排序算法。 3. **排序算法的...

    排序算法图解--Document.zip

    1. 冒泡排序:冒泡排序是一种简单的交换排序,通过不断比较相邻元素并交换位置,使最大(或最小)的元素逐渐“浮”到数组的一端。虽然效率较低,但对于小规模数据或部分有序的数据,仍然有其应用价值。 2. 插入排序...

Global site tag (gtag.js) - Google Analytics