# -*- coding: utf-8 -*
#写个排序算法类,不过还有快排序和归并排序,下次完善,方便大家使用。
class MySort:
def __init__(self,lists,reverse=True):
self.lists=lists
self.reverse=reverse
def sort_insert(self):
count = len(self.lists)
for i in range(1, count):
key = self.lists[i]
j = i - 1
while j >= 0:
if (self.lists[j] > key and self.reverse) or (self.lists[j]<key and not self.reverse):
self.lists[j + 1] = self.lists[j]
self.lists[j] = key
j -= 1
def sort_shell(self):
count = len(self.lists)
step = 2
group = count / step
while group > 0:
for i in range(0, group):
j = i + group
while j < count:
k = j - group
key = self.lists[j]
while k >= 0:
if (self.lists[j] > key and self.reverse) or (self.lists[j]<key and not self.reverse):
self.lists[k + group] = self.lists[k]
self.lists[k] = key
k -= group
j += group
group /= step
def sort_bubble(self): # 冒泡排序
count = len(self.lists)
for i in range(0, count):
for j in range(i + 1, count):
if (self.lists[i] > self.lists[j] and self.reverse) or\
(self.lists[i] < self.lists[j] and not self.reverse):
self.lists[i], self.lists[j] = self.lists[j], self.lists[i]
def sort_select(self): # 选择排序
count = len(self.lists)
for i in range(0, count):
min = i
for j in range(i + 1, count):
if (self.lists[min] > self.lists[j] and self.reverse) or\
(self.lists[min]<self.lists[j] and not self.reverse):
min = j
self.lists[min], self.lists[i] = self.lists[i], self.lists[min]
lists=[1,2,-100,333,200]
MySort1=MySort(lists,reverse=False)
MySort1.sort_radix()
print(MySort1.lists)
#写个排序算法类,不过还有快排序和归并排序,下次完善,方便大家使用。
class MySort:
def __init__(self,lists,reverse=True):
self.lists=lists
self.reverse=reverse
def sort_insert(self):
count = len(self.lists)
for i in range(1, count):
key = self.lists[i]
j = i - 1
while j >= 0:
if (self.lists[j] > key and self.reverse) or (self.lists[j]<key and not self.reverse):
self.lists[j + 1] = self.lists[j]
self.lists[j] = key
j -= 1
def sort_shell(self):
count = len(self.lists)
step = 2
group = count / step
while group > 0:
for i in range(0, group):
j = i + group
while j < count:
k = j - group
key = self.lists[j]
while k >= 0:
if (self.lists[j] > key and self.reverse) or (self.lists[j]<key and not self.reverse):
self.lists[k + group] = self.lists[k]
self.lists[k] = key
k -= group
j += group
group /= step
def sort_bubble(self): # 冒泡排序
count = len(self.lists)
for i in range(0, count):
for j in range(i + 1, count):
if (self.lists[i] > self.lists[j] and self.reverse) or\
(self.lists[i] < self.lists[j] and not self.reverse):
self.lists[i], self.lists[j] = self.lists[j], self.lists[i]
def sort_select(self): # 选择排序
count = len(self.lists)
for i in range(0, count):
min = i
for j in range(i + 1, count):
if (self.lists[min] > self.lists[j] and self.reverse) or\
(self.lists[min]<self.lists[j] and not self.reverse):
min = j
self.lists[min], self.lists[i] = self.lists[i], self.lists[min]
lists=[1,2,-100,333,200]
MySort1=MySort(lists,reverse=False)
MySort1.sort_radix()
print(MySort1.lists)