首页 > 其他分享 >冒泡排序

冒泡排序

时间:2023-03-13 21:23:15浏览次数:30  
标签:sort random range 冒泡排序 lst print bubble

原理

  1. 比较相邻的两个数,如果前面的数比后面大,则交换两个数的位置,最后得到最大的数排在最后一位,这样最后一位就有序了。

  2. 剩下的数再次比较,得到第二大的数排在倒数第二位,依次类推。

代码

import random

def bubble_sort(lst = None):
	for(i in range(len(lst))):
		for(j in range(len(lst) - i - 1)):
			#比较响铃的两个数,如果前面的数比后面的大,则交换两个数的位置
			if (lst[j] > lst[j+1]):
				lst[j], lst[j+1] = lst[j+1], lst[j]

lst = [random.randint(0, 10) for i in range(10)]
print(lst)
bubble_sort(lst)
print(lst)

改进

如果某次遍历没有交换相邻的数,则表明后面的的数据全部已经排好序

import random

def bubble_sort(lst = None):
	for(i in range(len(lst))):
		is_exchange = False
		for(j in range(len(lst) - i - 1)):
			#比较响铃的两个数,如果前面的数比后面的大,则交换两个数的位置
			if (lst[j] > lst[j+1]):
				lst[j], lst[j+1] = lst[j+1], lst[j]
				is_exchange = True
		if (not is_exchange):
			break

lst = [random.randint(0, 10) for i in range(10)]
print(lst)
bubble_sort(lst)
print(lst)

标签:sort,random,range,冒泡排序,lst,print,bubble
From: https://www.cnblogs.com/gzxiaohai/p/17212921.html

相关文章

  • 冒泡排序
    简述原理是相邻的两两元素做比较并往后移动,每轮可以选出一个最值故最多n-1轮排完每轮最多比较n-1-已完成轮数次总共最多比较n*(n-1)/2次比较并交换可以通过中间变量暂......
  • 经典的排序算法 - 冒泡排序
    冒泡排序算法应该可以说是很经典的一种对数据进行排序的的算法了,甚至在很多的介绍算法的数据中,它可能还是放在最前面开始讲解的。冒泡排序算法到底是咋样的呢?冒泡这个说法又......
  • 用冒泡排序模拟qsort的实现
    #include<stdio.h>#include<stdlib.h>#include<string.h>//交换voidswap(char*arr1,char*arr2,intwidth){inti=0;for(i=0;i<width;i++){chararr......
  • 冒泡排序
    原理第一个元素如果大于第二个元素比较,则他们位置调换。假设有6个元素,需要经过6*6=36次循环。 代码/***升序**@paramnumArr*@ret......
  • 冒泡排序(简单C++实现)
    实现代码如下://bubble_sort.cpp#include<stdio.h>voidprintArray(intarr[],intlen);//冒泡排序:最多进行n-1次排序intmain(){intarr[]={23,39,65,2......
  • php快速排序和冒泡排序
    <?phpfunctionmaopao($arr){if(!is_array($arr)){return$arr;}$count=count($arr);if($count<=1){return$arr;}for......
  • 【NOI2018】冒泡排序
    【NOI2018】冒泡排序Description最近,小S对冒泡排序产生了浓厚的兴趣。为了问题简单,小S只研究对\(1\)到\(n\)的排列的冒泡排序。下面是对冒泡排序的算法描述。......
  • 冒泡排序
    冒泡排序对N个数据进行排序,共进行N-1轮排序,每一轮都从第一个数据向后面比较(假如从小向大排列),若前面的数据大于后面的数据,则交换位置,再让第二个数据与第三个比较,以此类推......
  • java-数组,冒泡排序19
    packagecom.demo.data;publicclassarr{publicstaticvoidmain(String[]args){int[]arr={11,22,33,44,999};intmax=m(arr);......
  • 冒泡排序及其优化
    importjava.util.Arrays;publicclassbobbleSort{publicstaticvoidmain(String[]args){int[]arr={2,6,3,7,4,1,8,5,0,9};//......