Selection sort 选择排序
1、简单直观
2、数组中,找到最小的值,和第一个元素交换(如果第一个元素就是最小元素那么就和自己交换)。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。依次类推。
下面来看一下伪代码
selectionSort(mylist){
for(i=0;i<len(mylist);i++){
min=i;
for(j=i+1;j<len(mylist);j++){
if(mylist[min]>mylist[j]){
//如果mylist[min]的值大于mylist[j]的值 ,则交换min和j
min=j
}
}
//内循环完成,交换
temp = mylist[i];
mylist[i] = mylist[min];
mylist[min] = temp
}
}
#!/usr/bin/env python # -*- coding:utf-8 -*- def selection(mylist): for i in range(0, len(mylist)): min = i for j in range(i + 1, len(mylist)): if mylist[j] < mylist[min]: min = j mylist[i], mylist[min] = mylist[min], mylist[i] return mylist a = [10, 2, 3, 1, 23, 14, 25, 68, 72, 81, 33, 56, 98, 102, 77, 56, 7, 4, 5] print(selection(a))