`

排序算法学习(python版本)之冒泡排序(BubbleSort)

阅读更多
冒泡排序(Bubble Sort,台灣譯為:泡沫排序或氣泡排序)是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。冒泡排序演算法的運作如下:

  •   1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  •   2. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
  •   3. 針對所有的元素重複以上的步驟,除了最後一個。
  •   4. 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

代码:
#!/usr/bin/env python
#-*-encoding:utf-8

#BubbleSort
def bubble_sort(param):
    p_len = len(param)
    for i in range(p_len):
        for j in range(i+1,p_len)[::-1]:
            if param[j] < param[j-1]:
                param[j],param[j-1]=param[j-1],param[j]
    return param

def main():
    param = [1,2,3,5,7,6,4]
    print bubble_sort(param)

if __name__=="__main__":
    main()


参考资料:
http://zh.wikipedia.org/zh-cn/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F
分享到:
评论

相关推荐

    python常用排序算法汇总

    # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() #计数排序 # sort....

    冒泡排序算法实现javascript, python, go, java, php

    ### 冒泡排序算法知识点详解 #### 一、冒泡排序的基本概念与原理 冒泡排序(Bubble Sort)是一种基础且直观的排序方法,适用于初学者理解排序...对于初学者而言,学习冒泡排序有助于掌握排序算法的基本原理和技术。

    Python排序搜索基本算法之冒泡排序实例分析

    冒泡排序是一种基础的排序算法,它通过重复遍历待排序的序列,比较相邻的元素并根据需要交换它们,直到序列中的所有元素都在其正确的位置上。这种算法的名字来源于较小的元素像气泡一样逐渐“浮”到序列的顶端。在...

    冒泡法排序

    冒泡排序是一种基础且经典的排序算法,其工作原理是通过不断地交换相邻的逆序元素,逐渐将较大的元素“冒”到序列的末尾,从而达到排序的目的。在Linux环境下,尤其是Ubuntu 13.04这样的操作系统中,我们可以通过...

    排序算法实现代码与伪代码

    在本压缩包中,主要探讨了冒泡排序算法的实现,包括实际代码和伪代码两种形式,以帮助学习者深入理解其工作原理。** **冒泡排序**是一种简单的比较型排序算法,通过重复遍历待排序的元素列表,每次比较相邻的两个...

    用Python写冒泡排序代码

    冒泡排序是一种基础的排序算法,它通过重复遍历待排序的序列,比较相邻元素并交换位置,使得每个元素都能逐步地"浮"到正确的位置上。在Python中,我们可以用...但对于学习排序算法的初学者,冒泡排序是一个很好的起点。

    pythonBubbleSort:在Python中实现的冒泡排序

    冒泡排序是一种基础且直观...总的来说,冒泡排序是学习排序算法的基础,虽然它的效率不高,但其原理清晰,便于初学者理解和实现。在实际编程中,了解各种排序算法的优缺点和适用场景,能帮助我们选择最合适的解决方案。

    BubbleSort-Cpp-:我的冒泡排序算法的C ++实现(以前是在python中完成)

    总的来说,这个项目是将原本在Python中实现的冒泡排序算法转换为C++版本,这对于学习和理解两种语言的不同以及C++的数组操作和函数定义有很好的实践价值。同时,这也是一个很好的机会去探索如何在C++中优化基本算法...

    Python基础教程:7个经典程序示例.pdf

    同时,通过比较内置排序函数与自定义排序算法的效率,可以进一步理解Python的内置功能的强大之处。 总的来说,这个Python基础教程通过实例详细解释了列表排序的方法,包括使用内置函数和实现基本排序算法。这些知识...

    06 BubbleSort.rar

    总结来说,冒泡排序作为基础排序算法,虽然在实际应用中可能不被首选,但其背后的逻辑和思路对于学习数据结构与算法的人来说至关重要。通过学习和理解冒泡排序,我们可以更好地理解和掌握更高级、更高效的排序算法。

    比较排序之冒泡排序的实现

    冒泡排序是一种基础的、简单...总的来说,冒泡排序是一种直观且易于理解的排序算法,虽然它的效率并不高,但对初学者来说是学习排序算法的良好起点。通过深入理解冒泡排序,可以为进一步学习更复杂的排序算法打下基础。

    第七周学习总结1

    在第七周的学习中,我们深入探讨了三种初级排序算法的实现,它们分别是冒泡排序(BubbleSort)、插入排序(InsertionSort)和选择排序(SelectionSort)。这些算法是计算机科学中基础且重要的部分,尤其对于理解和...

    Java数据结构与算法

    **冒泡排序**: - **思想**: 重复遍历待排序序列,每次遍历时比较相邻的两个元素,如果顺序错误就交换位置。 - **实现**: ```java public void bubbleSort(int[] arr) { for (int out = arr.length - 1; out &gt; 0; ...

    算法基础知识学习

    算法学习系列——排序方法 1、冒泡排序。 主要思想:每轮遍历,都进行两两交换,将大数往后排列。直接上python代码,简单易懂: def bubbleSort(sortList): #冒泡排序 for i in range(len(sortList)):#进行len(sort...

    10个数组源码

    压缩包中的“10个数组源码”可能包含了上述各种操作的实例,比如不同语言实现的排序算法、查找算法,或者特定问题的解决方案。通过分析和实践这些代码,你可以更深入地理解数组的运作机制,提高编程技能。同时,这也...

    Python_algorithms

    在Python中,我们可以利用OOP来构建各种算法,如排序算法(冒泡排序、快速排序、归并排序等)、搜索算法(二分查找、广度优先搜索、深度优先搜索等)和图算法(Dijkstra算法、Floyd-Warshall算法等)。通过将这些...

Global site tag (gtag.js) - Google Analytics