您的位置:首页 > 编程语言 > C语言/C++

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

2017-04-14 23:54 721 查看
伪代码依旧在notepad++上写的。

SelectSort (input ele[],input length)
for i <- 1 to length step 1
min <- i
for j <- i+1 to length step 1
if ele[j] < ele[min]
min <- j
end if
swap(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操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息