选择排序(伪代码算法,c++,以及python实现)

来源:互联网 发布:淘宝创业好项目 编辑:程序博客网 时间:2024/06/08 03:05

伪代码依旧在notepad++上写的。

SelectSort (input ele[],input length)for i <- 1 to length step 1min <- ifor j <- i+1 to length step 1 if ele[j] < ele[min]min <- jend ifswap(ele[j],ele[min])end


c++版本,vs2010上运行。

void selectsort(int a[],int length){int i,j;for (i= 0;i < length;i++){int min = i;for (j = i + 1; j < length; j++)if (a[j] < a[min])min = j;swap (&a[i],&a[min]);}}

swap函数

void swap(int *a,int *b){int c;c = *a;*a = *b;*b = c;}


python上的实现

def SelectSort(array):    for i in range(len(array)):        min = i        for j in range(i+1,len(array)):            if (array[j] < array[min]):                min = j        array[min],array[i] = array[i],array[min]

选择排序的关键在于记录index,将index记录后,在一趟之后进行swap,比冒泡排序少很多次swap操作。



0 0
原创粉丝点击