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

冒泡排序详解

时间:2022-10-26 08:46:26浏览次数:61  
标签:exchange 冒泡排序 li range 详解 print 排序 bubble

冒泡排序分析详细节情版

import random
def bubble(li):
    for i in range(len(li)-1):
        exchange = False
        for j in range(len(li)-i-1):``
            if li[j] > li[j+1]:
                print('%s-%s哈哈已开始排序' % (i, j), li)
                li[j], li[j+1] = li[j+1], li[j]
                print('%s-%s哈哈已完成排序' % (i, j), li)
                exchange = True
                print('有变化',exchange)
        print('%s-%s已完成一轮的排序'%(i,j), li)
        if not exchange:  #exchange是False  not False = True
            print('无变化',exchange)
            return li
#
li = [9,1,2,4.5,4,5,6,7,8]
# li = list(range(10))
print('原始列表',li,len(li))
# bubble(li)
print('你好啊',bubble(li))


# li = [3,2,4,6,5,9,8,7,1]
# print(li)
# li = [random.randint(0,180) for i in range(50)]
# print('未开始排序',li)
# print('已完成排序',bubble(li))
# li = list(range(10000))
# random.shuffle(li)
# print('未开始排序',li)
# print('已完成排序',bubble(li))

自己写的简易版

#_*_ encoding: utf-8 _*_   @author: ty  hery   2021/6/5

import  time
def bubble_sort(li):
    for i in range(len(li)-1):
        exit = 0
        for j in range(len(li)-i-1):
            if li[j] > li[j+1]:
                exit = 1
                li[j+1],li[j] = li[j],li[j+1]
        print('>>>',i+1)
        if not exit:
            # break
            print('exit',i+1)
            # continue
            pass
        print('第%s轮排序结果%s' % (i + 1, li))

li = [3,2,4,6,5,9,8,7,1,12,13,11,10]
print("原始是列表>>>%s"%li,len(li))
bubble_sort(li)
print(li)

标签:exchange,冒泡排序,li,range,详解,print,排序,bubble
From: https://www.cnblogs.com/heris/p/16827056.html

相关文章

  • TCP链接详解
    一.TCP协议传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。基于流的方式;面向连接;(在通信之前要通过......
  • 冒泡排序
    #include<stdio.h>void_sum(intarr[],intsz)//冒泡排序{ inti=0; for(i=0;i<sz-1;i++)//排序的趟数 { intj=0; intflag=1; for(j=0;......
  • HTML三详解
    Web存储随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,传统方式我们以document.cookie来进行......
  • HTML5详解二
    本文主要内容拖拽历史地理位置全屏拖拽如上图所示,我们可以拖拽博客园网站里的图片和超链接。在HTML5的规范中,我们可以通过为元素增加draggable="true"......
  • BigDecimal精度详解
    [BigDecimal精确度的计数保留法及精度丢失的解决办法]目录[BigDecimal精确度的计数保留法及精度丢失的解决办法]BigDecimal精确度的计数保留法1、ROUND_UP2、ROUND_DOWN3......
  • 微服务 Zipkin 链路追踪原理(图文详解)
    一个看起来很简单的应用,可能需要数十或数百个服务来支撑,一个请求就要多次服务调用。当请求变慢、或者不能使用时,我们是不知道是哪个后台服务引起的。这时,我们使用 Zip......
  • JUC中的AQS底层详细超详解
    摘要:当你使用java实现一个线程同步的对象时,一定会包含一个问题:你该如何保证多个线程访问该对象时,正确地进行阻塞等待,正确地被唤醒?本文分享自华为云社区《JUC中的AQS底层详......
  • Springboot中@Value的使用详解
    Springboot中@Value的使用详解Springboot通过@Value注解将配置文件中的属性注入到容器内组件中(可用在@Controller、@Service、@Configuration、@Component等Spring托管的......
  • PostgreSQL 数组类型使用详解
    PostgreSQL数组类型使用详解PostgreSQL数组类型使用详解可能大家对PostgreSQL这个关系型数据库不太熟悉,因为大部分人最熟悉的,公司用的最多的是MySQL我们先对Postgr......
  • 数据结构:线段树基础详解
    1.简介线段树,顾名思义,就是由线段构成的树,是一个较为优秀的数据结构,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点,通常用于解决区间类的问题,在各大......