冒泡 插入 選擇 三種排序

2021-08-07 12:53:38 字數 2364 閱讀 3638

一、氣泡排序

演算法思路:兩兩比較相鄰記錄之間關鍵字,如果反序則交換,直到沒有反序的記錄為止。

具體**:

import random

data=

n=int(raw_input())

for re in range(0,n):

a=random.randint(1,1000)

# data[re] = a

print

data

for i in range(0,n):

for j in range(i+1,n):

ifdata[i] >= data[j]:

temp =data[j]

data[j]=data[i]

data[i]=temp

print

data

sum = 1

for i in range(0,len(data)-1):

ifdata[i]>data[i+1]:

sum = 0

break

if sum == 1:

print 'true'

else:

print 'false'

輸出效果:

9

[682, 494, 706, 113, 928, 600, 639, 111, 119]

[111, 113, 119, 494, 600, 639, 682, 706, 928]

true

二、插入排序

演算法思路:把n個待排序的元素看成為乙個有序表和乙個無序表,開始時有序表包含乙個元素,無序表中包含n-1個元素。排序過程就是每次從無序表中取出乙個元素,將其插入到有序表中的合適位置,使之成為新的有序表,重複n-1次即可完成排序過程。排序過程類似打撲克牌時整理手中牌的過程。

具體**:

import random

n = int(raw_input())

a =

for re in range(n):

b=random.randint(1,n*n)

print a

for i in range(0,len(a)):

x = a[i]

j=i-1

while j>=0

anda[j]>x :

a[j+1]=a[j]

j=j-1

a[j+1]=x

print a

temp = 1

for i in range (0,len(a)-1):

ifa[i]>a[i+1]:

temp = 0

break

if temp == 1:

print 'true'

else:

print 'false'

輸出效果:

8

[24, 44, 6, 61, 50, 20, 51, 9]

[6, 9, 20, 24, 44, 50, 51, 61]

true```

三、選擇排序:

演算法思路:首先,找到陣列中最小的那個元素;其次,將它和陣列的第乙個元素交換位置(如果第乙個元素就是最小元素那麼它就和自己交換);再次,在剩下的元素中找到最小的元素。將它與第二個元素交換位置。如此往復,直到將整個陣列排序。

**實現:

import random

s =

n = int (raw_input())

for i in range(n):

b = random.randint(1,n*n)

print s

for i in range

(0,len(s)-1):

index = i

for j in range(i+1,len(s)):

if s[j]print s

sum =1

for i in range

(0,len(s)-1):

if s[i] > s[i+1]:

sum =0

break

if sum ==1:

print

'true'

else:

print

'false'

輸出結果:

8

[56, 22, 25, 51, 64, 11, 12, 20]

[11, 12, 20, 22, 25, 51, 56, 64]

true

冒泡 選擇 插入三種排序

工作閒下來了,偶來學習下排序演算法的思想,適當的緩解下壓力,換個思考方式也很不錯的。氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為...

三種簡單排序比較總結(冒泡 插入 選擇)

首先我們了解一下三種演算法穩定性 演算法 穩定性排序方式 時間複雜度 最好時間 空間複雜度 冒泡穩定 交換o n2 o n o 1 插入穩定 直接插入 o n2 o n o 1 選擇不穩定 直接選擇 o n2 o n o 1 三種最好時間都是 在接近有序的時候!接著我們看一下 首先我們定一下陣列 1...

冒泡,插入,選擇排序

經典的排序演算法,此文章介紹三個 氣泡排序 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。public void bubblesort int a while iswrap for int ...