本帖最后由 FrancisTan 于 2014-7-9 08:04 编辑
先贴出自己写的代码:
- void sort(int[] arr)
- {
- for (int i = 0; i < arr.Length; i++)
- for (int j = i+1; j < arr.Length; j++)
- {
- if(arr[i] > arr[j])
- {
- int temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- }
- }
- }
复制代码
在方法sort中,两个for 循环就是在对数组arr进行冒泡排序,跟老师讲的有点不太一样,
但是这样写我觉得对于初学者来说比较好理解(因为老师讲的那种方法我用了很长时间才搞清楚)*_*()
我对于冒泡排序法的理解是找最大(小)值,每一次比对就是遍历数组找最大(小)值,然后将它放在数组
第一个位置,这样在循环结束后,数组就按照由大(小)到小(大)的顺序排好序了。
每次比对都将开始这个数及它后面所有数作为arr的一个子数组,
其中i用来遍历整个arr数组,确保数组中每个元素都对比到,
前面说过已经比对过的位置将放子数组中的最小值,所以
j用来遍历i+1及其后的数,这样可以减少比对次数。
PS:听说这种算法很累赘,但是对于初学者来说,能理解它,并自己做出来,很有成就感哦(比如我自己!),加油哦各位亲!
|