五種排序的方法

2021-10-19 18:50:30 字數 2809 閱讀 5170

四種方法如下:

氣泡排序

選擇排序

插入排序

快速排序

內建函式排序

#for i in range(7,-1,-1):#左閉右開區間,每次減一

# print(i)

'''各種排序方法進行比較'''

defshowdata

(data)

:for i in

range

(len

(data)):

print

("%.2f"

%data[i]

,end=

' ')

#選擇排序法,將每乙個數都和它後面的數進行比較,將最小的數交換到最後的位置

#依次找出最小、第二小。。。。的值

defsort_select

(data)

: length=

len(data)-1

print

("原始資料為:"

) showdata(data)

for i in

range

(length)

:for j in

range

(length-i)

:if data[j]

: data[j]

,data[j+1]

=data[j+1]

,data[j]

print()

print

("第{}次排序的結果為:"

.format

(int

(i+1))

,end=

' ')

showdata(data)

#氣泡排序法,將第乙個數和後面的所有資料進行比較,若是後乙個數大於前乙個數,就交換位

#選擇排序和氣泡排序是同乙個原理

defsort_bubble

(data)

: length=

len(data)-1

print

("原始資料為:"

) showdata(data)

for i in

range

(length)

:for j in

range

(length)

:if data[j]

: data[j]

,data[j+1]

=data[j+1]

,data[j]

print()

print

("第{}次排序的結果為:"

.format

(int

(i+1))

,end=

' ')

showdata(data)

#插入排序法,將資料分別取出來,依次放至乙個新的陣列中

defsort_insert

(data)

: length=

len(data)-1

print

("原始資料為:"

) showdata(data)

for i in

range(1

,length+1)

:#取出資料,存在temp中

temp=data[i]

no=i-

1#將temp分別和data(0,i)裡的資料分別進行比較,並將比較小的數字向後移

while no>=

0and temp>data[no]

: data[no+1]

=data[no]

no-=

1

data[no+1]

=temp

print()

print

("第{}次排序的結果為:"

.format

(int

(i+1))

,end=

' ')

showdata(data)

#快速排序法,我剛開始也想用平均數作為中間對比的值,

#但是要排序的數字比較多的時候就會報遞迴程度較深的錯誤

#所以就選了第乙個作為用於比對的數

defquick_sort

(data)

: left_list =

right_list =

length =

len(data)

if length==0:

return data

else

:for i in

range(1

,length)

:if data[i]

> data[0]

:)else:)

return quick_sort(left_list)

+[data[0]

]+ quick_sort(right_list)

#內建函式排序,這是最簡單也是最常用的方法

defdata_sort

(data)

: data.sort(reverse=

true

)#從大到小

data.sort(

)#從小到大

showdata(data)

data=[1

,2,3

,8,9

,56,6

]#showdata(data)

#sort_select(data)

#sort_bubble(data)

sort_insert(data)

五種排序方法總結

此次介紹的是五種排序的方法 1.氣泡排序 2.選擇排序 3.快速排序 4.插入排序 5。二分查詢 1 冒泡法,即利用相鄰的兩個數之間來比較達到交換的目的 從而把最大或最小的數 移到某一邊。故而 此種方法要 進行多個趟次與比較多次。例如 n個數字,則要進行n 1趟比較。在第m趟中要進行n m次兩兩之間...

C 五種排序方法(有參考)

資料結構選擇 陣列 概要設計 定義乙個容量為一億個整數的陣列,定義變數n,用rand函式生成n個隨機數,並賦值給陣列,用clock函式計算排序所用時間。編寫排序函式和主函式。include include include using namespace std int a 100000000 n v...

8種排序其中的五種

時間久了就忘了,把以前的 拿出來整理一下 插入排序 直接插入排序 straight insertion sort 結構圖 system.out.println 初始值 obj.print a obj.insertsort a system.out.println n排序後 obj.print a p...