简单选择排序—C—python

来源:互联网 发布:地图优化精灵 编辑:程序博客网 时间:2024/05/17 05:06

简单选择排序:比较n-1趟,每次找出最小的那个值,用min记录下标,然后交换i与min中的值简单选择时间复杂度为O(N^2),性能上要略优于冒泡排序,因为交换次数少

C实现

//简单选择排序#include<stdio.h>int main(){    int i,j,n,t,min;    int a[101]={0};    scanf("%d",&n);    for(i=1;i<=n;i++)        scanf("%d",&a[i]);      for(i=1;i<=n-1;i++)    {        min=i;        for(j=i+1;j<=n;j++)        {            if(a[min]>a[j])  //如果是从大到小,则换成a[j]<a[j+1]                min=j;        }        if(i!=min)        {            t=a[i];            a[i]=a[min];            a[min]=t;        }    }    for(i=1;i<=n;i++)            printf("%d ", a[i]);    return 0;}

Python实现

def select_sort(lists):    for i in range(len(lists)-1):        min =i        for j in range(i+1,len(lists)):            if lists[j] < lists[min]:                min=j        if min!=i:            lists[i],lists[min]=lists[min],lists[i]if __name__=='__main__':    eles = input('intput elements:').strip().split()    list = [int(ele) for ele in eles]    select_sort(list)    print(list)