关于Python排序问题(冒泡/选择/插入)

 更新时间:2023年04月14日 11:26:58   作者:灰勒塔德  
这篇文章主要介绍了关于Python排序问题(冒泡/选择/插入),学过C语言肯定接触过排序问题,我们最常用的也就是冒泡排序、选择排序、插入排序,需要的朋友可以参考下

前言:

学过C语言肯定接触过排序问题,我们最常用的也就是冒泡排序、选择排序、插入排序……等等,同样在Python中也有排序问题,这里我也会讲解Python中冒泡排序、选择排序和插入排序的写法和思维,上正文!

(这里我是以列表作为一个排序对象)

1.冒泡排序

冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。

import random as r
 
#写入数据
def add(li=[]):
    num=int(input(''))
    if num==-1:
        return li
    li.append(num)
    return add(li)
#排序
def bubble(li):
    for i in range(0,len(li)):
        for j in range(0,len(li)-i-1):
            if li[j]>li[j+1]:
                li[j]=li[j]^li[j+1]
                li[j+1]=li[j]^li[j+1]
                li[j] = li[j] ^ li[j + 1]
    return li
if __name__=='__main__':
    #输入:
    l=add()
    r.shuffle(l)
    print('排序前:',l)
    newlist2=bubble(l)
    print('2.排序后:',newlist2)

2.选择排序

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。

import random as r
 
#写入数据
def add(li=[]):
    num=int(input(''))
    if num==-1:
        return li
    li.append(num)
    return add(li)
#选择排序
def choose(li):
    for i in range(0,len(li)-1):
        for j in range(i+1,len(li)):
            if li[i]>li[j]:
                li[j] = li[j] ^ li[i]
                li[i] = li[j] ^ li[i]
                li[j] = li[j] ^ li[i]
    return li
 
if __name__=='__main__':
    #输入:
    l=add()
    r.shuffle(l) #打乱列表的顺序
    print('排序前:',l)
    newlist3=choose(l)
    print('3.排序后:',newlist3)

3.插入排序

有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。

插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。

import random as r
 
#写入数据
def add(li=[]):
    num=int(input(''))
    if num==-1:
        return li
    li.append(num)
    return add(li)
#插入排序
def insert(li):
    for i in range(1,len(li)):
        num=li[i]
        j=i-1
        while j>=0 and li[j]>num:
            li[j+1]=li[j]
            li[j]=num
            j+=1
    return li
 
if __name__=='__main__':
    #输入:
    l=add()
    r.shuffle(l) #打乱列表的顺序
    print('排序前:',l)
    newlist4=insert(l)
    print('4.排序后:',newlist4)

到此这篇关于关于Python排序问题(冒泡/选择/插入)的文章就介绍到这了,更多相关Python排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 图形绘制详细代码(一)

    Python 图形绘制详细代码(一)

    这篇文章主要介绍了Python 图形绘制详细代码,文章主要从最简单图像的开始,在同一图上绘制两条或多条线一些简单操作,想了解的小伙伴可以学习一下,希望对你的学习有所帮助
    2021-12-12
  • 对Xpath 获取子标签下所有文本的方法详解

    对Xpath 获取子标签下所有文本的方法详解

    今天小编就为大家分享一篇对Xpath 获取子标签下所有文本的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 对Tensorflow中的变量初始化函数详解

    对Tensorflow中的变量初始化函数详解

    今天小编就为大家分享一篇对Tensorflow中的变量初始化函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 详解Python是如何实现issubclass的

    详解Python是如何实现issubclass的

    这篇文章主要介绍了详解Python是如何实现issubclass的,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Django学习笔记之ORM基础教程

    Django学习笔记之ORM基础教程

    ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,下面这篇文章主要给大家介绍了关于Django学习笔记之ORM基础教程的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2018-03-03
  • pygame实现简单五子棋游戏

    pygame实现简单五子棋游戏

    这篇文章主要为大家详细介绍了pygame实现简单五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<BR>
    2022-01-01
  • Python实现判断一个字符串是否包含子串的方法总结

    Python实现判断一个字符串是否包含子串的方法总结

    这篇文章主要介绍了Python实现判断一个字符串是否包含子串的方法,结合实例形式总结分析了四种比较常用的字符串子串判定方法,需要的朋友可以参考下
    2017-11-11
  • 一文带你掌握Python中enumerate函数和for循环的对比

    一文带你掌握Python中enumerate函数和for循环的对比

    在Python编程中,循环是一项常见的任务,而for循环是最常见的一种,然而,Python提供了enumerate函数,它允许在迭代过程中访问元素的同时获得它们的索引,下面我们就来学习一下二者的区别吧
    2023-11-11
  • 浅谈OpenCV中的新函数connectedComponentsWithStats用法

    浅谈OpenCV中的新函数connectedComponentsWithStats用法

    这篇文章主要介绍了浅谈OpenCV中的新函数connectedComponentsWithStats用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python实现购物车购物小程序

    Python实现购物车购物小程序

    这篇文章主要为大家详细介绍了Python实现购物车购物小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04

最新评论