氣泡排序和雞尾酒排序 code

2022-03-16 12:22:52 字數 3535 閱讀 2196

昨天回顧了下氣泡排序和雞尾酒排序,用物件導向的方式寫了一下,並且優化了**,記錄一下~

#

氣泡排序

class

bubblesort(object):

def__init__

(self, data_list):

self.data_list =data_list

self.length =len(data_list)

#簡單粗暴的排序方式

defb_sort(self):

data_list =list(self.data_list)

for i in

range(self.length):

print('

**************第%s輪迴圈**************

' % (i + 1))

index_len =self.length

for index in range(index_len - 1):

print

(index)

if data_list[index] > data_list[index + 1]:

data_list[index], data_list[index + 1] = data_list[index + 1], data_list[index]

return

data_list

#優化後美麗動人又可愛的氣泡排序

defnew_b_sort(self):

data_list =list(self.data_list)

for i in

range(self.length):

print('

**************第%s輪迴圈**************

' % (i + 1))

index_len =self.length

mark =false

for index in range(index_len - 1 -i):

print

(index)

mark =true

if data_list[index] > data_list[index + 1]:

data_list[index], data_list[index + 1] = data_list[index + 1], data_list[index]

mark =false

ifmark:

break

return

data_list

data_list = [2, 3, 1, 7, 4, 3]

bubblesort =bubblesort(data_list)

res1 =bubblesort.b_sort()

print

(res1)

res2 =bubblesort.new_b_sort()

print(res2)

#

雞尾酒排序

class

cocktailsort(object):

def__init__

(self, data_list):

self.data_list =data_list

self.length =len(data_list)

#簡單粗暴的排序方式

defc_sort(self):

data_list =list(self.data_list)

for i in

range(self.length):

print('

**************第%s輪迴圈**************

' % (i + 1))

index_len =self.length

print('

左--->右')

for index in range(index_len - 1):

print

(index)

if data_list[index] < data_list[index + 1]:

data_list[index], data_list[index + 1] = data_list[index + 1], data_list[index]

print('

右--->左')

index_len =self.length

for index in range(index_len - 1):

print

(index)

if data_list[index] > data_list[index + 1]:

data_list[index], data_list[index + 1] = data_list[index + 1], data_list[index]

return

data_list

#優化後俏皮美麗又懂事的雞尾酒排序

defnew_c_sort(self):

data_list =list(self.data_list)

for i in

range(self.length):

print('

**************第%s輪迴圈**************

' % (i + 1))

index_len =self.length

mark =false

print('

左--->右')

for index in range(index_len - 1-i):

mark =true

print

(index)

if data_list[index] < data_list[index + 1]:

data_list[index], data_list[index + 1] = data_list[index + 1], data_list[index]

mark =false

print('

右--->左')

index_len =self.length

for index in range(i, index_len - 1):

mark =true

print

(index)

if data_list[index] > data_list[index + 1]:

data_list[index], data_list[index + 1] = data_list[index + 1], data_list[index]

mark =false

ifmark:

break

return

data_list

data_list = [2, 3, 1, 7, 4, 3]

cocktailsort =cocktailsort(data_list)

res1 =cocktailsort.c_sort()

res2 =cocktailsort.new_c_sort()

print

(res1)

print(res2)

氣泡排序 雞尾酒排序

include 交換函式 void swap int a,int i,int j 列印陣列 void printa int a,int len printf n 氣泡排序 int main1 int len sizeof a sizeof a 0 int i,j 外層迴圈控制輪數,每一輪找出乙個最大...

氣泡排序案例,雞尾酒排序

概念 依次比較相鄰的兩個數,將小數放在前面,大數放在後面 第一趟可得到 將最大數放到最後一位,第二趟可得到 將第二大的數放到倒數第二位,如此下去,重複以上過程,直至最終完成排序。由於排序過程中,總是將小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。思路 用二重迴圈實現,外迴圈變數設為i...

雞尾酒排序

氣泡排序是從陣列的一側到另一側為一輪,根據條件兩兩交換,例如關於氣泡排序中的一組資料3 2 5 4 6 1 8 9 7,優化的氣泡排序在經過六輪之後得到排好的陣列,而雞尾酒排序是一輪次比較兩回 先從左到右比較,如果左邊比右面大,交換位置 然後從右到左比較,左邊比右邊大,交換位置。就用冒泡中的那組數從...