IT评测·应用市场-qidao123.com

标题: 算法---选择排序 [打印本页]

作者: 半亩花草    时间: 2025-1-22 14:05
标题: 算法---选择排序
选择排序的思路

代码

  1. class Solution:
  2.     def choose(self, arr):
  3.         n = len(arr)
  4.         for i in range(n - 1):
  5.             min_index = i
  6.             for j in range(i + 1, n):
  7.                 if arr[j] < arr[min_index]:
  8.                     min_index = j
  9.             arr[i], arr[min_index] = arr[min_index], arr[i]
  10.         return arr
  11. if __name__ == "__main__":
  12.     arr = [8, 0, 4, 6, 1, 2, 7, 3, 5, 9]
  13.     s = Solution()
  14.     res = s.choose(arr)
  15.     print(res)
复制代码
优化点

使用双向指针可以进行优化
  1. class Solution:
  2.     def selecttion_sort(self, arr):
  3.         n = len(arr)
  4.         for i in range(n):
  5.             min_index = i
  6.             left = i + 1
  7.             right = n - 1
  8.             while left <= right:
  9.                 if arr[left] < arr[min_index]:
  10.                     min_index = left
  11.                 if arr[right] < arr[min_index]:
  12.                     min_index = right
  13.                 left += 1
  14.                 right -= 1
  15.             arr[i], arr[min_index] = arr[min_index], arr[i]
  16.         return arr
  17. if __name__ == "__main__":
  18.     arr = [8, 0, 4, 6, 1, 2, 7, 3, 5, 9]
  19.     s = Solution()
  20.     res = s.selecttion_sort(arr)
  21.     print(res)
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4