|
‘’'选择排序法和冒泡法其实有一点点相似,其原理是:
1、选取一个(第一次为首元素)元素作为最小(最大)元素;
2、记住该元素下角标min
3、将该元素与余下的元素作比较,若遇到比该元素小(大)的元素,就与min交换值
5、循环n-1次
class Selection():
def selection_sort(self,nums):
for i in range(0,len(nums)-1):
min_=i
for j in range(i+1,len(nums)):
if nums[j]=0 and nums[j]>intermediate:#比较左一位与中间变量的值,如果左面大:
nums[j+1]=nums[j]#:就将左值赋给右边一位,这里不用担心右面一位的值没有保留,而是在中间变量中
j=j-1#将j值减小一个,向左移一位,继续比较
nums[j+1]=intermediate#循环结束后,记得把中间变量的值赋给nums[j+1]
return nums
希尔排序法
仔细看代码,看得懂。其实我不知道这是不是希尔排序。。。
class ShellSort():
def shell_sort(self,nums):
chunt=int(len(nums)/2)
while chunt>=1:
i=0
while i+chuntnums[i+chunt]:
print("nums[%d]=%d,nums[%d+%d]=%d"%(i,nums,i,chunt,nums[i+chunt]))
nums,nums[i+chunt]=nums[i+chunt],nums
i+=1
if i>len(nums):
break
chunt-=1
for i in range(0,len(nums)-1):#这里不要问我为什么,有时候有问题是难免的,找个办法解决就好了
print(i)
if nums>nums[i+1]:
nums,nums[i+1]=nums[i+1],nums
return nums
|
|