mirror of
https://github.com/krahets/hello-algo.git
synced 2026-02-10 22:25:30 +08:00
Add the section of selection sort. (#513)
This commit is contained in:
26
codes/python/chapter_sorting/selection_sort.py
Normal file
26
codes/python/chapter_sorting/selection_sort.py
Normal file
@@ -0,0 +1,26 @@
|
||||
"""
|
||||
File: selection_sort.py
|
||||
Created Time: 2023-05-22
|
||||
Author: Krahets (krahets@163.com)
|
||||
"""
|
||||
|
||||
|
||||
def selection_sort(nums: list[int]):
|
||||
"""选择排序"""
|
||||
n = len(nums)
|
||||
# 外循环:未排序区间为 [i, n-1]
|
||||
for i in range(n - 1):
|
||||
# 内循环:找到未排序区间 [i, n-1] 中的最小元素
|
||||
k = i
|
||||
for j in range(i + 1, n):
|
||||
if nums[j] < nums[k]:
|
||||
k = j # 更新最小元素
|
||||
# 将该最小元素与未排序区间的首个元素交换
|
||||
nums[i], nums[k] = nums[k], nums[i]
|
||||
|
||||
|
||||
"""Driver Code"""
|
||||
if __name__ == "__main__":
|
||||
nums = [4, 1, 3, 1, 5, 2]
|
||||
selection_sort(nums)
|
||||
print("选择排序完成后 nums =", nums)
|
||||
Reference in New Issue
Block a user