黑马程序员技术交流社区
标题:
冒泡排序
[打印本页]
作者:
yihuyixi2
时间:
2015-3-24 00:41
标题:
冒泡排序
在java基础中,数组的冒泡排序的原理是什么?具体是个什么思路。
作者:
田晓莉
时间:
2015-3-24 08:53
冒泡排序:总是在比较相邻的两个元素。简单的理解数字就像是气泡,体积大的气泡下沉,体积小的气泡上升(从小到大排序),实现数字的排序,用到循环嵌套。
例如,一列随机数字(无序),要求按照从小到大排列。
思路:1.定义数组存放参加比较的随机数字;
2,利用循环嵌套,进行比较;
3,输出比价结果。
代码实现:
class BubbleSort
{
public static void main(String[] args)
{
int[] arr = {2,3,6,34,14,21,15};
//排序前
printArray(arr);
//冒泡排序
bubble(arr);
//排序后
printArray(arr);
}
public static void bubble(int[] arr)
{
for (int x=0;x<arr.length-1 ;x++ )
{
for(int y =0 ;y<arr.length-x-1 ;y++ )//-x:让每一次比较的元素减少;-1是避免角标月越界
{
if (arr[y]>arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
public static void printArray(int[] arr)
{
System.out.print("[");
for (int i=0;i<arr.length ;i++ )
{
if(i!=arr.length-1)
System.out.print(arr[i]+",");
else
System.out.print(arr[i]+"]");
}
}
}
复制代码
作者:
青默
时间:
2015-3-24 08:59
楼上解释很详细
作者:
陈捷旋
时间:
2015-3-24 10:44
多看,慢慢就理解了,多敲就熟悉了
作者:
艺多不压身丶
时间:
2015-3-24 12:31
假如我们对一个五位数的数组进行排序比较。
50 10 30 20 40
第一步;我们拿40跟20比,发现40是老大,不用交换。
第二步;然后向前推一步,就是拿20跟30比,发现30是老大,就要交换了。
第三步:拿交换后的20跟10比,发现自己是老大,不用交换。
第四步:拿10跟50交换,发现50是老大,进行交换。
最后,我们经过一次遍历,把数组中最小的数字送上去了,以此类推
作者:
小鹏_sJQBO
时间:
2015-3-24 13:33
卤煮没仔细看毕老师的视频吧
作者:
tenderne
时间:
2015-3-24 16:23
两两对比,小者上浮
作者:
qsmaxmin
时间:
2015-3-24 16:29
涨姿势了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2