昨天回顧了下氣泡排序和雞尾酒排序,用物件導向的方式寫了一下,並且優化了**,記錄一下~
#氣泡排序
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):
(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):
(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()
(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):
(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):
(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
(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
(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()
(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,優化的氣泡排序在經過六輪之後得到排好的陣列,而雞尾酒排序是一輪次比較兩回 先從左到右比較,如果左邊比右面大,交換位置 然後從右到左比較,左邊比右邊大,交換位置。就用冒泡中的那組數從...