基础排序排序算法lintcode463
本周懈怠了,没有好好学习算法。周末做几道题。
1:基础排序算法(升序):
1)选择排序:开始我以为选择排序是判断当前下标位置的值和之后的值进行比较,只要小,就进行交换,但其实选择排序是要先在当前下标值和未排序序列中找到最小值,再将最小值和当前下标位置值进行交换,经过一次外层循环(一遍内层循环)后只进行一次交换!

详细解释可以参考菜鸟教程:https://www.runoob.com/w3cnote/selection-sort.html
2)冒泡排序:每经过一次外层循环,每相邻的两个数进行比较,如果前面的值比后面的值大,就进行位置交换,每一次循环最大的值就会走到数组的末端。我开始写得不好的地方在于,我第二层循环写得是j<A.length,但其实应该用j<A.length - i 来去掉已经可以确定的尾端那些排好序的大值,减少循环的次数。

详细解释可以参考菜鸟教程:https://www.runoob.com/w3cnote/bubble-sort.html
3)插入排序:

详细解释参考菜鸟教程:https://www.runoob.com/w3cnote/insertion-sort.html
对于插入排序我尝试了很久双重for循环的方式,一直也没有成功。。。。

浙公网安备 33010602011771号