7.4 泡排序★2◎3

7.4 泡排序★2◎3


7.4 冒泡排序★2◎3
  先来看看待排序列一趟冒泡的过程:设1<j&le;n,r[1],r[2],&hellip;,r[j]为待排序列,通过两两比较、交换,重新安…

7.4 泡排序★2◎3

7.4 冒泡排序★2◎3

  先来看看待排序列一趟冒泡的过程:设1<j≤n,r[1],r[2],…,r[j]为待排序列,通过两两比较、交换,重新安排存放顺序,使得r[j]是序列中关键码最大的记录。一趟冒泡方法为:
  ①i=1;设置从第一个记录开始进行两两比较;
  ②若i≥j,一趟冒泡结束;
  ③比较r[i].key与r[i+1].key,若r[i].key≤r[i+1].key,不交换,转⑤;
  ④当r[i].key>r[i+1].key时,r[0]=r[i];r[i]=r[i+1];r[i+1]=r[0];将r[i]与r[i+1]交换;
  ⑤i=i+1;调整对下两个记录进行两两比较,转②。
  对n个记录的表,第一趟冒泡得到一个关键码最大的记录r[n];第二趟冒泡对n-1个记录的表,再得到一个关键码最大的记录r[n-1];如此重复,直到得到n个记录按关键码有序的表。
  对于序列{6,3,5,9,7},用冒泡法排序的过程如下:

  【效率分析】
  空间效率:仅用了一个辅助单元。
  时间效率:最多进行n-1趟冒泡,对i个记录的表进行一趟冒泡需要i-1次关键码比较:

  最好情况:待排序列已有序,不需移动,只进行一趟比较,比较次数为n-1次。
  最坏情况:待排序列逆序,每次比较后要进行3次移动:

  

7.4 泡排序★2◎3

    关于作者: admin

    这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字活着HTML!

    为您推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    评论列表 人参与

    联系我们

    联系我们

    8888-88888888

    在线咨询: QQ交谈

    邮箱: email@admin.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部