冒泡排序(python实现)

思想:从第一个开始往后进行比较大小,如果大,互相交换位置,继续往后比较,如果小,进行下一个元素的比较(也是顺序的比较大小)。

def bubble_sort(sort_list):
    """冒泡排序"""
    n = len(sort_list)
    # 每个元素都需要在list中比较一遍,最差情况为O(n*n)
    for j in range(0, n-1):
        count = 0
    # 当前元素在序列中进行排序
        for i in range(0, n-1-j):
            if sort_list[i] > sort_list[i+1]:
                sort_list[i],sort_list[i+1] = sort_list[i+1],sort_list[i]
                count += 1
        if count == 0: # 如果序列本身就是有序的,直接退出。O(n)
            return

原文地址:https://www.cnblogs.com/sometingintheway/p/11966425.html

时间: 2024-10-04 17:22:56

冒泡排序(python实现)的相关文章

冒泡排序-Python与PHP实现版

Python实现 import random a=[random.randint(1,999) for x in range(0,33)] # 冒泡排序,python中数组是按引用传递的,会直接在原数组上修改 def bubbleSort(array): flag = True i=0 while i<len(array) and flag: j=len(array)-1 while j>i: if array[j-1] > array[j]: array[j-1],array[j] =

选择排序、插入排序、冒泡排序python实现

选择排序的时间复杂度为O(n^2),是不稳定的排序 冒泡排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),平均情况下为O(n^2),是稳定的排序 插入排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),,平均情况下为O(n^2),是稳定的排序 1.选择排序 def selection(lista): leng=len(lista); for i in range(0,leng): index=i; min=lista[i]; for j in range(i,leng)

冒泡排序——Python实现

冒泡排序Python实现 # -*- coding: utf-8 -*- # @Time : 2019/10/28 19:41 # @Author : yuzhou_1shu # @Email : [email protected] # @File : bubble_sort.py # @Software: PyCharm def bubble_sort(collection): # 求序列的长度 length = len(collection) # 从序列中第一个元素开始以此跟后一个比较 fo

冒泡排序&mdash;&mdash;Python实现

一.排序思想 排序思想参见:https://www.cnblogs.com/luomeng/p/10161794.html 二.python实现 def bubble_sort(nums): """ 冒泡排序 Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表. Python2 range() 函数返回的是列表. :type nums: 待排序列 """ for i in ran

动态解析冒泡排序—Python

冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端. 实例 def bubbleSort(arr): n = len(arr) # 遍历所有数组元素 for i in range(n): # Last i elements are already in p

冒泡排序--python

def bubbleSort(nums): i = len(nums) - 1 while (i > 0): last_index = 0 for j in range(i): if nums[j] > nums[j+1]: nums[j],nums[j+1] = nums[j+1],nums[j] last_index = j i = last_index return nums

python算法与数据结构-冒泡排序(32)

一.冒泡排序介绍 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端. 二.冒泡排序原理 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.这一步做完,最后的元素应该会是最大的数. 针对所有的元素重复以

Python函数的冒泡排序、递归以及装饰器

函数的冒泡排序: 本质是,让元素换位置,逐个比较最终排序. 例1:实现a1,a2值互换: a1 = 123 a2 = 456 temp = a1 a1 = a2 a2 = temp print(a1) print(a2) 结果: 456 123 冒泡排序: #!/bin/bash/env python # -*- coding:utf-8 -*- li = [22,1,5,4,3,66,22,12,34,21] for j in range(1,len(li)): for i in range(

快速排序算法回顾 --冒泡排序Bubble Sort和快速排序Quick Sort(Python实现)

冒泡排序的过程是首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第三个记录的关键字.以此类推,直至第n-1个记录和第n个记录的关键字进行过比较为止.上述过程称为第一趟冒泡排序,接着第二趟对前面n-1个关键字进行同样操作,…… 快速排序是对冒泡排序的一种改进,通过一趟排序将记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,可分别对这两部分记录以递归的方法继续进行排序,以达到整个序列有序. 单趟Partition()函数过程请看

算法:冒泡排序(python版)

1.将n个元素从大到小排序后,选择第k个大的元素 #!/usr/bin/env python #coding -*- utf:8 -*- #冒泡排序选第k个元素 import random import time def select_k(): n = int(input("所要生成的数组的长度:")) arraya = [] for i in range(n): x = random.choice(range(100)) arraya.append(x) print("所生