黑马程序员技术交流社区
标题:
插入排序
[打印本页]
作者:
jackhai9
时间:
2014-8-11 22:17
标题:
插入排序
本帖最后由 jackhai9 于 2014-8-12 12:24 编辑
既然一般情况下,插入排序比冒泡排序快一倍,比选择排序还要快一点。那生活中有什么例子能帮助我们更好地理解插入排序吗?
作者:
fantacyleo
时间:
2014-8-11 22:36
貌似最经典的例子就是整理手中的扑克牌,使其按牌面数字从小到大或从大到小排列。假设要求从左往右,最小的排在最左边,最大的排在最右边。那么整理过程是:将左边第二张牌跟左边第一张牌比较大小并按顺序排列两张牌,然后将左边第三张牌依次和左边第二张牌、左边第一张牌比较大小,决定左边第三张牌应该放的位置。以此类推。这样,当处理完左边k张牌时,就可以保证这k张牌是有序的。那么当处理完全部牌时,整手牌也就是有序的了
作者:
jackhai9
时间:
2014-8-11 23:03
fantacyleo 发表于 2014-8-11 22:36
貌似最经典的例子就是整理手中的扑克牌,使其按牌面数字从小到大或从大到小排列。假设要求从左往右,最小的 ...
这么说,“打够级”摸牌也是啊,原来我小时候就接触了插入排序这么高深的东东啊,哈哈
作者:
黄霄仪
时间:
2014-8-11 23:10
fantacyleo 发表于 2014-8-11 22:36
貌似最经典的例子就是整理手中的扑克牌,使其按牌面数字从小到大或从大到小排列。假设要求从左往右,最小的 ...
果然理解的够透彻,学习了
作者:
そ花痕ゐ蝶梦
时间:
2014-8-11 23:24
插入排序不懂,但冒泡排序和选择排序的效率是一样的!
作者:
jiangweibin2573
时间:
2014-8-12 02:53
附上小小代码思想
public static void main(String[] args) {
int[] arr = {1,5,3,8,2,7};
arr = insert(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
//用插入排序完成数组元素从小到大排序
public static int[] insert(int[] arr){
for(int i=1;i<arr.length;i++){
for(int j=i;j>0;j--){
if(arr[j]<arr[j-1]){
int temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
}
else
}
}
return arr;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2