>>> import random
>>> arr = [random.randint(0,100) for i in range(20)]
>>> arr
[100, 76, 84, 37, 8, 69, 17, 1, 54, 70, 17, 3, 27, 13, 32, 63, 49, 86, 31, 100]
>>> for i in range(19):
i_min = i
for j in range(i+1, 20):
if arr[j] < arr[i_min]:
i_min = j
if i_min != i:
arr[i], arr[i_min] = arr[i_min], arr[i]
>>> arr
[1, 3, 8, 13, 17, 17, 27, 31, 32, 37, 49, 54, 63, 69, 70, 76, 84, 86, 100, 100]
建议百度选择排序或冒泡排序,这是c语言https://blog.csdn.net/hebtu666/article/details/97918838,这是py:https://blog.csdn.net/hebtu666/article/details/81434236
import random
def findSmallest(arr):
smallest = arr[0]
smallest_index = 0
for i in range(1, len(arr)):
if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
def selectionSort(arr):
newArr = []
for i in range(len(arr)):
smallest = findSmallest(arr)
newArr.append(arr.pop(smallest))
return newArr
def main():
nums = []
for i in range(20):
nums.append(random.randint(1, 100))
ret = selectionSort(nums)
print(ret)
if __name__ == '__main__':
main()
[3, 4, 14, 14, 17, 17, 18, 20, 21, 21, 24, 34, 43, 53, 58, 59, 63, 70, 70, 87]