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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sshh11 中级黑马   /  2015-10-30 20:27  /  744 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请教各位大神,有会冒泡算法的指教偶以下。

9 个回复

倒序浏览
视频教程有讲的哦
回复 使用道具 举报
看我的帖子吧 , 亲。   里面有的
回复 使用道具 举报
冒泡就是相邻两个比较,找极端(Max or  Min)的
回复 使用道具 举报
我的帖子里有,你可以去看一下
回复 使用道具 举报
去看毕向东的视频
回复 使用道具 举报
一句话就是把最大的往尾部移动
回复 使用道具 举报
视频里面有,这个冒泡排序就是一种思想方式,并不是最优的。视频里面有的,毕老师讲的很细的
回复 使用道具 举报
chm006 中级黑马 2015-10-30 22:50:54
9#
/*
冒泡排序:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来
第一轮:先比较第一和第二,然后判断是否交换,再比较第二和第三,一直比较到最后一位
(第一轮结束之后发现这组数的最后一位就是这组数的最值了(最大或者最小值))
第二轮:同第一轮比较一样,因为最后一个数已经是最值了,所以只要比较到倒数第二位数
之后以此类推...
*/
class BubbleSort
{
        public static void main(String[] args)
        {
                int[] arr = {5,2,9,4,6,7,3,1,8};
                for (int i=0; i<arr.length-1; i++)
                {
                        for (int j=1; j<arr.length-i; j++)
                        {
                                if (arr[j-1] > arr[j]) //按照升序排列
                                {
                                        //利用异或(^)让arr[i]和arr[j]的值换一下,也可以利用第三个变量来交换
                                        arr[j-1] = arr[j-1] ^ arr[j];
                                        arr[j] = arr[j-1] ^ arr[j];
                                        arr[j-1] = arr[j-1] ^ arr[j];
                                }
                        }
                }
                for (int i=0; i<arr.length; i++)
                {
                        System.out.print(arr[i]+",");
                }
        }
}
回复 使用道具 举报
public class BubbleSortDemo {
       
        public static void main(String[] args) {
                /*
                 * 选择排序
                 * 原理:
                 * 1.每次比较,相邻元素两两比较,将较大的元素换到后面,
                 *                 这样一轮比较结束,最大值就跑到参与比较的元素最后面。
                 * 2.依次减小比较范围,重复步骤1,直到全部元素排序完毕。
                 */
                int[] arr = {12, 56, 43, 90, 32};
               
                bubbleSort(arr);
               
                for (int i : arr) {
                        System.out.print(i + " ");
                }
        }

        public static void bubbleSort(int[] arr) {
                // 外层循环控制需要比较的次数
                for (int i = 0; i < arr.length - 1; i++) {
                        // 内层循环控制交换过程。比较范围是依次向前缩小的
                        for (int j = 0; j < arr.length - 1 - i; j++) {
                                if (arr[j] > arr[j+1]) {
                                        int temp = arr[j];
                                        arr[j] = arr[j + 1];
                                        arr[j + 1] = temp;
                                }
                        }
                }
        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马