好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据结构 利用冒泡排序算法进行排序.doc

10页
  • 卖家[上传人]:ldj****22
  • 文档编号:34050961
  • 上传时间:2018-02-20
  • 文档格式:DOC
  • 文档大小:157.50KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 利用冒泡排序算法进行排序一、项目说明:该算法是用来实现数据排序的利用冒泡算法对自动生成的一百个数字进行排序,冒泡排序是一种典型的交换排序方法,基本思路是:通过无序区中相邻记录关键字间的比较和位置的交换,使关键字最小的记录如气泡一般逐渐往上“漂浮” 直到 “水面”整个算法是从最下面的记录开始,对每两个相邻的关键字进行比较,且使关键字较小的记录换至关键字较大的记录之上,使得经过排序之后,关键字最小的记录到达最上端二、该项目的调试环境为 VisualC++,该环境的使用过程为:如图为进入该环境所需要的步骤:该图为进入 VC 环境的第一步,其说明了要调试该项目所要选择的一些内容:如图二为第二步在该不中我们要选择第三个类型:如图为我们完成以上步骤后所得出的结果:下面为我所调试的项目:三、源码分析:冒泡排序的算法过程如下:#define Max 100 void bubsort(int r[],int n) /*冒泡排序*/{int i,j,k;int temp;for(i=0;ii;j--)if(r[j]100&&u100&&uL.r[2].key) ,则将两个记录交换之,然后比较第二个记录和第三个记录的关键字。

      依次类推,直至第 n-1 个记录的关键字和第 n 个记录的关键字比较过为止这是第一趟冒泡排序,其结果是使得关键字最大的记录被安置到最后一个记录的位置上;(2)然后进行第二趟冒泡排序,对前面的 n-1 个记录进行同样的操作,其结果是使关键字次大的记录被安置到第 n-1 个记录的位置;一般地,第 i 趟冒泡排序是从 L.r[1]到 L.r[n-i+1]依次比较相邻两个记录的关键字,并在“ 逆序” 时交换相邻记录,其结果是这 n-i+1 个记录中关键字最大的记录被交换到第 n-i+1 的位置上整个排序过程需要进行 K(1≤kr[j+1]){flag=1;temp=r[j];r[j]=r[j+1];r[j+1]=temp;}i++;}}2、从下向上冒泡的冒泡排序的基本思想是:(1)首先将第 n-1 个记录的关键字和第 n 个记录的关键字进行比较,若为“逆序”(即 L.r[n].key=i+1;j--)if(r[j]L.r[2].key) ,则将两个记录交换之,然后比较第二个记录和第三个记录的关键字依次类推,直至第 n-1 个记录的关键字和第 n 个记录的关键字比较过为止这是第一趟冒泡排序,其结果是使得关键字最大的记录被安置到最后一个记录的位置上;2、然后进行第二趟冒泡排序,将第 n-2 个记录的关键字和第 n-1 个记录的关键字进行比较,若为“ 逆序 ”(即 L.r[n-1].keyr[j+1]){temp=r[j];r[j]=r[j+1];r[j+1]=temp;flag =1;}high--; /*修改上界 */for(j=high;j>low;j--) /*从下向上冒泡*/if(r[j]0) /*注意这个交换条件*/{temp=r[j];r[j]=r[j+d];r[j+d]=temp;flag=1;}b[1+d]-=d; /*修改边界 */d*=-1; /*换个方向*/}/*while*/} /*bibubble4*/经过该次实验我了解到了自己对冒泡排序算法掌握的还不是很好就想刚在上面的一些总结中所说到的个种思想要不是做这次实验我还不知道那,因此我还需要在努力的去认识它并多做实验。

      而且我对算法的实现过程不太熟悉,经验不足,还需要进一步加强。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.