无名 发表于 2022-5-8 18:32:42

【HC】python几种排序方法

‘’'选择排序法和冒泡法其实有一点点相似,其原理是:
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=0 and nums>intermediate:#比较左一位与中间变量的值,如果左面大:
                nums=nums#:就将左值赋给右边一位,这里不用担心右面一位的值没有保留,而是在中间变量中
                j=j-1#将j值减小一个,向左移一位,继续比较
            nums=intermediate#循环结束后,记得把中间变量的值赋给nums
      return nums

希尔排序法
仔细看代码,看得懂。其实我不知道这是不是希尔排序。。。

class ShellSort():
    def shell_sort(self,nums):
      chunt=int(len(nums)/2)
      while chunt>=1:
            i=0
            while i+chuntnums:
                  print("nums[%d]=%d,nums[%d+%d]=%d"%(i,nums,i,chunt,nums))
                  nums,nums=nums,nums
                i+=1
                if i>len(nums):
                  break
            chunt-=1
      for i in range(0,len(nums)-1):#这里不要问我为什么,有时候有问题是难免的,找个办法解决就好了
            print(i)
            if nums>nums:
                nums,nums=nums,nums
      return nums
http://cdn.u1.huluxia.com/g3/M01/7D/C0/wKgBOV3xmoeALD07AAFAIevZ-vc955.jpg
页: [1]
查看完整版本: 【HC】python几种排序方法