`

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

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

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

时间复杂度:
  最好情况:正序有序,只需比较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))

分享到:
评论

相关推荐

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

    冒泡排序-冒泡排序法的改进 比如用冒泡排序将4、5、7、1、2、3这6个数排序。在该列中,第二趟排序结束后,数组已排好序,但计算机此时并不知道已经反排好序,计算机还需要进行一趟比较,如果这一趟比较,未发生...

    七大排序算法--c语言是实现

    交换排序:快速排序quicksort,冒泡排序bubblesort 选择排序:直接选择排序selectionsort,堆排序maxheapsort 插入排序:直接插入排序insertsort,希尔排序shellsort 合并排序:归并排序mergesort

    python-冒泡排序算法.docx

    python 冒泡排序算法 Python 冒泡排序算法 冒泡排序算法是一种简单的排序算法,它的基本思想是通过不断比较相邻的元素,将较大的元素向后移动,较小的元素向前移动,从而实现排序的目的。冒泡排序算法的时间复杂度为...

    经典排序算法,有选择排序,冒泡排序,交换排序,谢尔排序,插入排序基数排序

    经典排序算法,有选择排序,冒泡排序,交换排序,谢尔排序,插入排序基数排序

    冒泡排序及其改进算法C语言实现 冒泡排序及其改进算法C语言实现 冒泡排序及其改进算法C语言实现

    2改进的冒泡排序,在一次冒泡的过程中,如果没有发生交换,则已经有序 3进一步改进的冒泡排序,如果在某次冒泡过程中,最后一次进行交换的位置为flag,则表示flag之后的序列已经有序,那么下一次冒泡就无需比较flag...

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

    //冒泡排序 for(int i=0;i;i++){ for(int j=i+1;j;j++){//注意j的开始值是i+1,因为按照排序规则,比a[i]大的值都应该在它后面 if(a[i] > a[j]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; ...

    快速、冒泡排序算法比较

    试通过随机数据比较快速排序、起泡排序各算法的关键字比较次数和关键字移动次数。 (1)待排序表的表长不小于100;其中的数据要用伪随机数产生程序产生;... (3)对冒泡排序应指出进行了多少趟。

    7种常用排序算法实现(C++)(冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序以及快速排序)

    本文件是7种常用排序算法的实现(C++),包括冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序以及快速排序。代码详细有注释且有测试用例。

    C语言排序算法冒泡排序

    冒泡排序是一种简单且常见的排序算法,它重复地遍历待排序的元素,并依次比较相邻的两个元素,如果它们的顺序不正确则交换它们,直到整个序列排序完成。以下是对C语言冒泡排序的描述,不包含具体的代码实现: 基本...

    冒泡算法的改进算法

    冒泡算法的改进思想: 1.记录从第0下标开始一直递增的最后一个数的下标start,在以后的每趟排序中都是从start下标开始比较,免去了从头到此下标的比较 2.记录从最后一个下标开始一直递减的最后一个下标end,在以后...

    java基础 经典算法之冒泡排序详解

    1.冒泡排序的原理:每次都从第一个元素开始(索引0),向后两两比较,只要后面的比前面的大,就交换(从大到小) 2.通过画图分析,5个数字排4趟,n数字排n-1趟,而外层的for循环代表的是循环的趟数,所以外层循环的结束条件是...

    C语言冒泡排序算法源程序.zip

    C语言冒泡排序算法源程序,冒泡排序算法的思路即两两进行大小比较,交换排序,通过相邻数据的比较交换从而实现排序目的。

    常用排序算法,括交换法,冒泡法等

    排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法 对算法本身的速度要求很高。 介绍一些排序的基本算法.包括交换法,冒泡法等等...

    C语言实现的冒泡排序算法

    冒泡排序是一种简单的排序算法,通过重复地遍历待排序的序列,比较相邻的两个元素,若它们的顺序错误则交换它们,直到没有需要交换的元素为止。本资源首先解释了冒泡排序的基本原理和算法步骤,然后通过具体的C语言...

    C语言冒泡排序算法详解:从原理到代码的完整教程

    C语言冒泡排序的习题集,针对C语言冒泡排序算法的重要知识点和难点,提供了大量的练习题和考试题,以及详细的答案和解析,涵盖了冒泡排序算法的原理、步骤、实现方法、优化技巧、相关概念和知识等内容,以及冒泡排序...

    java基础冒泡排序.ppt

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 走访元素的工作是重复...

    Java实现冒泡排序算法(源代码)

    冒泡排序是一种简单的排序算法,通过重复遍历待排序序列,比较每对相邻的元素,并在必要时交换它们的位置,从而将最大的元素逐步“浮”到序列的末尾。这个过程会不断重复,直到整个序列变得有序。冒泡排序的时间...

    冒泡排序算法的实现,用C语言实现。

    冒泡排序算法的实现,用C语言实现,并含有测试程序。程序已经测试通过。 /* * --冒泡排序-- * 依次比较相邻的两个数,将大数放在前面,小数放在后面。 * 即首先比较第1个和第2个数,将大数放前,小数放后。 ...

    Java排序算法实现:冒泡与选择排序示例代码

    冒泡排序(Bubble Sort) 是一种基本的排序算法,它通过多次遍历数组,比较相邻元素的大小并交换它们,从而使最大(或最小)的元素逐渐移动到数组的最后。冒泡排序的实现在Java中非常简单,通过嵌套的循环来实现相邻...

    c++冒泡排序详解

    冒泡排序,作为最基本的排序算法,由于原理像冒泡一样,所以取名为冒泡排序; 我们知道,水泡在上升时,总是密度最小的最先上去,假如一个水层只能容纳一个水泡,那么水泡由上到下的排序就是密度逐渐增大的排序。...

Global site tag (gtag.js) - Google Analytics