A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 FrancisTan 于 2014-7-9 08:04 编辑

先贴出自己写的代码:
  1. void sort(int[] arr)
  2. {
  3.        for (int i = 0; i < arr.Length; i++)
  4.               for (int j = i+1; j < arr.Length; j++)
  5.               {
  6.                      if(arr[i] > arr[j])
  7.                      {
  8.                             int temp = a[i];
  9.                             a[i] = a[j];
  10.                             a[j] = temp;
  11.                      }
  12.               }
  13. }
复制代码



在方法sort中,两个for 循环就是在对数组arr进行冒泡排序,跟老师讲的有点不太一样,
但是这样写我觉得对于初学者来说比较好理解(因为老师讲的那种方法我用了很长时间才搞清楚)*_*()


我对于冒泡排序法的理解是找最大(小)值,每一次比对就是遍历数组找最大(小)值,然后将它放在数组
第一个位置,这样在循环结束后,数组就按照由大(小)到小(大)的顺序排好序了。

每次比对都将开始这个数及它后面所有数作为arr的一个子数组,
其中i用来遍历整个arr数组,确保数组中每个元素都对比到,
前面说过已经比对过的位置将放子数组中的最小值,所以

j用来遍历i+1及其后的数,这样可以减少比对次数。

PS:听说这种算法很累赘,但是对于初学者来说,能理解它,并自己做出来,很有成就感哦(比如我自己!),加油哦各位亲!

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

3 个回复

倒序浏览
你贴的代码怎么只有一行啊~
加油! 不积跬步无以至千里不积小流无以成江海!
回复 使用道具 举报
本帖最后由 FrancisTan 于 2014-7-4 19:08 编辑
向晓伟 发表于 2014-7-4 19:00
你贴的代码怎么只有一行啊~
加油! 不积跬步无以至千里不积小流无以成江海! ...

我也奇怪啊。我在弄我明明写上去了呀 求助啊,只能贴一行代码了
回复 使用道具 举报
FrancisTan 发表于 2014-7-4 19:04
我也奇怪啊。我在弄我明明写上去了呀 求助啊,只能贴一行代码了

哎呀,弄了半天才弄好。真是浪费时间,菜鸟不容易啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马