zoukankan      html  css  js  c++  java
  • 数据结构与算法----->算法----->简单排序算法:冒泡、选择、插入排序

    概述:

        

    5.1冒泡排序算法

        

        

        

        冒泡排序的每一轮都选出剩下元素中的最大者放到了数组的最后位置,下一轮冒泡时就不用考虑这个元素了

           bubbleSort.java     P61

        

        

        

    5.2选择排序算法

        排序结果:数组左侧是最小值,尾部是最大值

        算法思想:每一轮比较找出最小值,然后将其放在最左侧

        算法的时间复杂度:比较次数O(N2)     交换次数O(N)

    5.3插入排序算法

        排序结果:将数组按照从小到大的顺序排列,数组尾部元素值最大

        算法思想:每轮循环插入一个数

              还是原来的无序数组,只是新加一个tmp存储待插入的数组元素

              待插入数组元素左侧的序列是有序的

              在待插入元素的左侧的有序序列中查找到待插入元素应该插入的位置key

              Array[key+1]array[待插入元素下标-1]之间的所有元素后移一位

              Array[key]=tmp

              开始新一轮的插入

        算法的时间复杂度:

               

              

              

           P73 insertionSort.java

    5.4对象排序(如stu_arrstudent类型的数组元素按照关键字排序)

      • 排序函数写在StudentArray.java
      • 按照某关键字排序
      • 选定排序算法(选择、冒泡、插入排序算法)
      • 算法是一样的,只有参与比较的对象不同stu_arr[i].getName().compareToIgnoreCase(   )>0
      • 字符串的比较

          

    P76   ObjectSort.java

     

    5.5几种简单排序之间的比较

          

          

          也就是说可以就地完成排序,不需要另外开辟数组空间存储数组中数据。

     小结:

        

        

        

        

        

    遗留问题:第三章的“编程作业”

    学习的过程中总会得到一些心得体会,认真地将它们记录下来并分享给每一个愿意花费时间去阅读它们的人,然后意外地收获某个读者的评论,从而激发出新的感想,是一件十分令人欢快的事。如果你也在研习这方面的知识,欢迎加入到我们的队伍中来,和我们一起进步吧(^_^)
  • 相关阅读:
    湾区求职分享:三个月刷题拿到 Google offer,欢迎踊跃提问
    【转】关于写书
    【转】真相
    【转】成都的雾霾
    【转】iPhone X
    【转】网络用语
    【转】AlphaGo Zero 和强人工智能
    【转】理性的力量
    【转】旅行的智慧
    【转】我为什么爱猫
  • 原文地址:https://www.cnblogs.com/lxrm/p/6440290.html
Copyright © 2011-2022 走看看