快捷搜索:  汽车  科技

python中的选择排序(选择排序python版)

python中的选择排序(选择排序python版)# import random def my_choice(my_list): n = len(my_list) for i in range(n - 1): min_value_index = i for j in range(i n): if my_list[j] < my_list[min_value_index]: min_value_index = j my_list[i] my_list[min_value_index] = my_list[min_value_index] my_list[i] if __name__ == "__main__": # elements_list = [random.randint(

上次介绍了冒泡排序,本次介绍另一种与冒泡排序类似的选择排序。其核心原理是随机给定一个列表中的n个数字 执行n-1轮比较和交换 每轮选择其中最小的数字与本轮中最左侧第一个数字进行交换。具体实现的方式是设置一个名为min_value_index的变量 在每轮比较的时候用于存储该轮比较过程中最小值的位置。待该轮比较结束后索引该位置上的值进行交换。

第1轮排序,在第1到第n个元素(共n个元素)中找出最小的元素与第1个元素进行位置交换。

第2轮排序,在第2到第n个元素(共n-1个元素)中找出最小的元素与第2个元素进行位置交换。

第3轮排序,在第3到第n个元素(共n-2个元素)中找出最小的元素与第3个元素进行位置交换。

......

第n-1轮排序,在第n-1到第n个元素(共2个元素)中找出最小的元素与第n-1个元素进行位置交换。

排序结束。

python中的选择排序(选择排序python版)(1)

以下为实现的代码:

# import random def my_choice(my_list): n = len(my_list) for i in range(n - 1): min_value_index = i for j in range(i n): if my_list[j] < my_list[min_value_index]: min_value_index = j my_list[i] my_list[min_value_index] = my_list[min_value_index] my_list[i] if __name__ == "__main__": # elements_list = [random.randint(1 100) for i in range(10)] elements_list = [32 33 25 89 8 94 81 21 71 58] print("排序之前: " elements_list) my_choice(elements_list) print("排序之后: " elements_list)

不足之处请批评指正,欢迎讨论~~~

猜您喜欢: