美文网首页
冒泡排序

冒泡排序

作者: 极客123 | 来源:发表于2018-09-23 19:30 被阅读0次

    首先要说一点:冒泡排序的效率非常低,当然其优势是内存占用少.

    伪代码:

          for   i  between   0  and   (array length -2 ) : 
              if (array (i+1))   < (array(i) ) : 
                交换 (array (i+1))  和 (array (i)) 的位置一直重复迭代即可实现排序
    

    java代码实现:

    import java.util.Arrays;
    
    public class MyselfSort {
        public static void main(String[] args) {
            boolean flag ;
            int []  nums = {5,3,6,3,7,2,44,0};
            do {
                flag = false;
                for (int i = 0 ;  i < nums.length-1 ; i ++ ) {
                    if (nums[i+1]>nums[i]){
                        int tmp = nums [i+1];
                        nums[i+1]=nums[i];
                        nums[i]=tmp;
                        flag=true;
                    }
                }
            }while (flag);
    
            Arrays.stream(nums).forEach(System.out::println);
        }
    }
    
    

    冒泡排序: 两个杯子交换杯子里的水,需要一个交换的杯子
    如上: flag标识来界定是否循环遍历了整个集合
    从第一个元素开始和第二个元素比较,和第三个比较,一直到最后一个比较
    发现第二个比第一个大,发生交换,并继续循环

    import java.util.Arrays;
    
        public class MyselfSort {
        public static void main(String[] args) {
            int[] arr = {5, 3, 6, 7, 2, 44, 0};
            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;
                    }
                }
            }
            Arrays.stream(arr).forEach(System.out::println);
        }
    }
    

    相关文章

      网友评论

          本文标题:冒泡排序

          本文链接:https://www.haomeiwen.com/subject/ppeqoftx.html