python中怎么實(shí)現(xiàn)冒泡排序和插入排序-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)python中怎么實(shí)現(xiàn)冒泡排序和插入排序,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),樂(lè)平企業(yè)網(wǎng)站建設(shè),樂(lè)平品牌網(wǎng)站建設(shè),網(wǎng)站定制,樂(lè)平網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,樂(lè)平網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

  1、冒泡排序

  冒泡排序的主要思想類似于水底的氣泡,從水底向水平面移動(dòng)時(shí),不斷變大。

  具體實(shí)現(xiàn)步驟如下:

  step1: 比較相鄰的元素,如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。

  step2: 對(duì)每一對(duì)相鄰元素做同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。此時(shí),最后的元素應(yīng)該是大的數(shù)。

  step3: 針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)(最后一個(gè)已經(jīng)是大的了)。 持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。

  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、快速排序

  快速排序的思想主要是將數(shù)列拆成一大、一小的數(shù)列,然后再對(duì)一大一小繼續(xù)分割迭代,最后實(shí)現(xiàn)數(shù)列的快速排序。

  具體實(shí)現(xiàn)步驟如下:

  step1: 先從數(shù)列中選取一個(gè)數(shù)作為基數(shù)(本人取了下標(biāo)為中間對(duì)應(yīng)的數(shù)組值作為基數(shù))。

  step2: 將比這個(gè)大的數(shù)字全放在右邊,比這個(gè)數(shù)小的數(shù)字放在左邊,現(xiàn)在得到了左右兩個(gè)區(qū)間。

  step3: 將左右區(qū)間分別再次執(zhí)行step1,不斷迭代,得到最終返回的數(shù)組=迭代(左)+[ 基數(shù)]+迭代(右)

  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、插入排序鄭州婦科醫(yī)院哪家好 http://mobile.chfk120.com/

  插入排序的思想就是將無(wú)序數(shù)列插入到有序數(shù)列中。本質(zhì)也是兩個(gè)元素比大小,滿足條件就交換位置,一開始會(huì)像冒泡排序一樣,但會(huì)比冒泡多一步就是交換后(a[i]=a[i+1]后)原位置(a[i]),會(huì)繼續(xù)和前面的數(shù)比較滿足條件交換,直到a[i+1]前面的數(shù)組是有序的。

  具體實(shí)現(xiàn)步驟如下:

  step1: 認(rèn)定第一個(gè)元素為有序數(shù)列(第一個(gè)元素就一個(gè),無(wú)需排序)。

  step2: 選取無(wú)序數(shù)列中的第元素與有序數(shù)列的元素依次比較,如果比前面的數(shù)小,那就把它放到這個(gè)數(shù)前面。

  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中怎么實(shí)現(xiàn)冒泡排序和插入排序,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

新聞標(biāo)題:python中怎么實(shí)現(xiàn)冒泡排序和插入排序-創(chuàng)新互聯(lián)
文章分享:http://muchs.cn/article6/dcjgig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站制作、響應(yīng)式網(wǎng)站、軟件開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)