开发者社区> 问答> 正文

java中数组中冒泡排序法,谁能解释的简单点,不理解呀 谢谢

java中数组中冒泡排序法,谁能解释的简单点,不理解呀 谢谢

展开
收起
知与谁同 2018-07-16 20:03:05 1237 0
3 条回答
写回答
取消 提交回答
  • //a = 1, b = 4, c = 7, d = 2
    //1、 2、 3、 4
    //abcd四个人相遇了,他们要排队,身高高的人站前面,
    //这四人先是随便站的,就按abcd的顺序站,每个人交换位置只能和旁边的人交换
    //2号位开始发话了
    //b对a说: 我比你高站前面没毛病,
    //b再看c说:你比我高你厉害,你跟你前面的比比看谁更高
    //c于是对d说:我比你高,你到后面去,于是c和d交换位置
    // => a = 1,b = 4,d = 2,c = 7
    // 1、 2、 3、 4、
    //3号位开始说话了
    //心想我刚和c比过肯定比他矮,就不找他比了
    //d对a说:我比你高站你前面没毛病,
    //d再看b说:你比我高你站我前面,于是d和b交换位置
    //=> a = 1, d = 2, b = 4, c = 7
    // 1、 2、 3、 4、

    //最后的结果 a = 1, d = 2, b = 4, c = 7
    2019-07-17 22:50:17
    赞同 展开评论 打赏
  • 这个时候,玄酱是不是应该说点什么...
    冒泡排序算法的运作如下:
    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    针对所有的元素重复以上的步骤,除了最后一个。
    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。[1]public class BubbleSort{ public void sort(int[] a) { int temp = 0; for (int i = a.length - 1; i > 0; --i) { for (int j = 0; j < i; ++j) { if (a[j + 1] < a[j]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } }}
    2019-07-17 22:50:17
    赞同 展开评论 打赏
  • Nothing for nothing.
    冒泡排序是依次比较相邻的两个元素,如果第一个比第二个大,就交换他们两个,交换后原先的大数,向后移动一个位置 ,小数向前移动一个位置,这样原先的第一个数(大数)排在了第二位,原先的第二位数(小数)排在了第一位 ;如果第一个数比第二个数小,不进行交换。再继用
    现在 第二个数和第三个数比较 如果现在第二个数大于第三个数 则交换位置 否则不交换
    接着 3和4 4和5 。。。依次比较直到数组结束(这仅仅是一次完整的循环) 这样每次大数都向后移动 ,小数向前移动 一次循环完后 再进行第二次 直到所有的数在数组中有序的排列

    这是一种排序的方法 冒泡排序只是一个形象的叫法

    特别注意的是:只要符合这种方法对数组进行排序,无论代码实现过程是怎样的,都叫冒泡排序
    2019-07-17 22:50:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载