Selection sort 选择排序

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))

点赞