黑马程序员技术交流社区

标题: 冒泡排序法和选择排序法 [打印本页]

作者: 橘猫自由    时间: 2015-12-20 10:01
标题: 冒泡排序法和选择排序法
数组:
        基本排序;
                冒泡排序:
                        相邻元素两两比较,大的往后走,第一次比较完毕后,最大值就在最大索引处。
                                24 57 80 69 13
                        第一轮:
                                比较4次,比较完后,结果是: 24 57 69 13 80
                        第二轮:
                                比较3次,比较完后,结果是: 24 57 13 69 80
                        第三轮:
                                比较2次,比较完后,结果是: 24 13 57 69 80
                        第四轮:
                                比较1次,比较完后,结果是: 13 24 57 69 80

                        总结;
                                总共比较了4轮,每轮的比较次数为数组的长度-1-i

                        int[] arr = {24, 57, 80, 69, 13};
                        for(int i= 0; i<arr.length-1; i++) {
                                for(int j=0; j<arr.length-1-i; j++) {        //-1是为了防止索引越界,-i是为了提高效率
                                        if(arr[j] > arr[j+1]) {
                                                int temp = arr[j];
                                                arr[j] = arr[j+1];
                                                arr[j+1] = temp;
                                        }
                                }
                        }
               
                选择排序:
                        24 57 80 69 13

                        13 57 80 69 24

                        13 24 80 69 57               

                        13 24 57 80 69

                        13 24 57 69 80
                思路:
                        从第一个元素开始,依次拿该位置的元素 和之后所有的元素进行比较,小的往前,大的往后,
                        第一轮比较完毕后,最小值就在最小索引处。

                        int[] arr = {24, 57, 80, 69, 13};
                        for(int i= 0; i<arr.length-1; i++) {
                                for(int j= i + 1; j<arr.length; j++) {        //-1是为了防止索引越界,-i是为了提高效率
                                        if(arr[i] > arr[j]) {
                                                int temp = arr[i];
                                                arr[i] = arr[j];
                                                arr[j] = temp;
                                        }
                                }
                        }
作者: 孜孜不倦    时间: 2015-12-20 14:49
赞一下。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2