golang 实现选择排序算法

Python09

golang 实现选择排序算法,第1张

选择排序提高了冒泡排序的性能,它每遍历一次列表只交换一次数据,即进行一次遍历时找 到最大的项,完成遍历后,再把它换到正确的位置。和冒泡排序一样,第一次遍历后,最大的数 据项就已归位,第二次遍历使次大项归位。这个过程持续进行,一共需要 n-1 次遍历来排好 n 个数 据,因为最后一个数据必须在第 n-1 次遍历之后才能归位。

这是一个数列 f(n) = f(n-1) + f(n-2)+ f(n-3), f(1) = 1, f(2) = 2,f(3)=4

n = 100.

递归做就可以了。

//param x 台阶数目

int goadd(int x)

{

if (x == 1){

return 1

}

else if (x == 2){

return 2

}

else if (x == 3){

return 4

}

else{

return goadd(x - 1) + goadd(x-2)+goadd(x-3)

}

}

void main()

{

printf("%d", goadd(5))

getchar()

}

还可以用组合数学方法做:

设有m次走1级,n次走2级,则有100-m-2n次走3级.总共走100-n次