冒泡排序的每一轮都选出剩下元素中的最大者放到了数组的最后位置,下一轮冒泡时就不用考虑这个元素了
bubbleSort.java P61
排序结果:数组左侧是最小值,尾部是最大值
算法思想:每一轮比较找出最小值,然后将其放在最左侧
算法的时间复杂度:比较次数O(N2) 交换次数O(N)
排序结果:将数组按照从小到大的顺序排列,数组尾部元素值最大
算法思想:每轮循环插入一个数
还是原来的无序数组,只是新加一个tmp存储待插入的数组元素
待插入数组元素左侧的序列是有序的
在待插入元素的左侧的有序序列中查找到待插入元素应该插入的位置key
Array[key+1]至array[待插入元素下标-1]之间的所有元素后移一位
Array[key]=tmp
开始新一轮的插入
算法的时间复杂度:
P73 insertionSort.java
P76 ObjectSort.java
也就是说可以就地完成排序,不需要另外开辟数组空间存储数组中数据。
遗留问题:第三章的“编程作业”
数据结构与算法----->算法----->简单排序算法:冒泡、选择、插入排序
原文:http://www.cnblogs.com/lxrm/p/6440290.html