python中怎么实现冒泡排序和插入排序

发布时间:2021-08-07 16:00:03 作者:Leah
来源:亿速云 阅读:133

本篇文章给大家分享的是有关python中怎么实现冒泡排序和插入排序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

  1、冒泡排序

  冒泡排序的主要思想类似于水底的气泡,从水底向水平面移动时,不断变大。

  具体实现步骤如下:

  step1: 比较相邻的元素,如果第一个比第二个大,就交换他们两个。

  step2: 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。此时,最后的元素应该是最大的数。

  step3: 针对所有的元素重复以上的步骤,除了最后一个(最后一个已经是最大的了)。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

  python3的代码如下:

  # -*- coding: utf-8 -*-

  """

  Created on Thu Dec 19 11:10:42 2019

  @author: Boge

  """

  arr_1= [6,3,9,15,4,2]

  # 冒泡排序

  def bubble_sort(arr):

  for i in range(len(arr)):

  for j in range(len(arr) - i -1):

  if arr[j]>arr[j+1]:

  arr[j],arr[j+1] = arr[j+1],arr[j]

  return arr

  # print('冒泡排序前:',arr_1)

  # print('冒泡排序后:',bubble_sort(arr_1))

  # 冒泡排序前: [6, 3, 9, 15, 4, 2]

  # 冒泡排序后: [2, 3, 4, 6, 9, 15]

  2、快速排序

  快速排序的思想主要是将数列拆成一大、一小的数列,然后再对一大一小继续分割迭代,最后实现数列的快速排序。

  具体实现步骤如下:

  step1: 先从数列中选取一个数作为基数(本人取了下标为中间对应的数组值作为基数)。

  step2: 将比这个大的数字全放在右边,比这个数小的数字放在左边,现在得到了左右两个区间。

  step3: 将左右区间分别再次执行step1,不断迭代,得到最终返回的数组=迭代(左)+[ 基数]+迭代(右)

  python3的代码如下:

  arr_2 = [7,1,4,8,26,43,2,3]

  # 快速排序

  def quick_sort(arr):

  if len(arr) <= 1:

  return arr

  mid = arr[len(arr)//2]

  left,right = [],[]

  arr.remove(mid)

  for item in arr:

  if item >= mid:

  right.append(item)

  else:

  left.append(item)

  return quick_sort(left) + [mid] + quick_sort(right)

  # print('快速排序前:',arr_2)

  # print('快速排序后:',quick_sort(arr_2))

  # answer:

  # 快速排序前: [7, 1, 4, 8, 26, 43, 2, 3]

  # 快速排序后: [1, 2, 3, 4, 7, 8, 26, 43]

  3、插入排序郑州妇科医院哪家好 http://mobile.chfk120.com/

  插入排序的思想就是将无序数列插入到有序数列中。本质也是两个元素比大小,满足条件就交换位置,一开始会像冒泡排序一样,但会比冒泡多一步就是交换后(a[i]=a[i+1]后)原位置(a[i]),会继续和前面的数比较满足条件交换,直到a[i+1]前面的数组是有序的。

  具体实现步骤如下:

  step1: 认定第一个元素为有序数列(第一个元素就一个,无需排序)。

  step2: 选取无序数列中的第元素与有序数列的元素依次比较,如果比前面的数小,那就把它放到这个数前面。

  python3的代码如下:

  arr_3 = [16,20,4,9,2,98,1,7]

  # 插入排序

  def insert_sort(arr):

  for i in range(1,len(arr)):

  value = arr[i]

  j = i-1

  while j >= 0:

  if arr[j] > value:

  arr[j+1] = arr[j]

  else:

  break

  j -=1

  arr[j+1] = value

  print(arr)

  return arr

  # print('插入排序前:',arr_3)

  # print('插入排序后:',insert_sort(arr_3))

  # answer:

  # 插入排序前: [16, 20, 4, 9, 2, 98, 1, 7]

  # 插入排序后: [1, 2, 4, 7, 9, 16, 20, 98]

以上就是python中怎么实现冒泡排序和插入排序,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. 插入排序的python实现
  2. 如何使用Python实现插入排序和选择排序

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:Python中怎么实现快速排序算法

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》