首页 > 编程语言 > 详细

简单谈谈 数组排序 的方法 【自定义算法 、 冒泡算法 等】

时间:2020-06-13 12:08:22      阅读:45      评论:0      收藏:0      [点我收藏+]

1.前言

有个数组

int[] numbers = new int[]{1, 6, 4, 5, 2, 12, 33, 24};

希望能够计算出 升序和降序 的数组结果 ,该怎么做?

2.算法

(1)自定义排序算法

技术分享图片
package com.example.javabaisc.sort;

import org.junit.jupiter.api.Test;

import java.util.Arrays;


public class Bubble {

    @Test
    public void t() {
      
        int[] numbers = new int[]{1, 6, 4, 5, 2, 12, 33, 24};
        /**
         * 升序
         */
        Arrays.sort(numbers);
        System.out.println(Arrays.toString(numbers));
        /**
         * 降序
         */
        //克隆,这样就不需要考虑数组长度了
        int[] n2 = numbers.clone();
        //首末数据颠倒
        for (int i = 0; i < numbers.length; i++) {
            n2[i] = numbers[numbers.length - 1 - i];
        }
        System.out.println(Arrays.toString(n2));

    }


}
View Code

打印结果

技术分享图片

 

 (2)冒泡排序算法

技术分享图片
package com.example.javabaisc.sort;

import org.junit.jupiter.api.Test;

import java.util.Arrays;


public class Bubble {

    @Test
    public void t() {

        int[] numbers = new int[]{1, 6, 4, 5, 2, 12, 33, 24};

//        冒泡排序算法
        int i, j;
        /**
         * 升序
         */
        //第一层,只需要对比(元素总数-1)次即可
        for (i = 0; i < numbers.length - 1; i++) {
            //第二层,只需要对比(元素总数-1-已经对比过的次数)次即可
            for (j = 0; j < numbers.length - 1 - i; j++) {
                //升序:相邻的两个元素对比,当左边的比右边大时 ,需要互换位置
                if (numbers[j] > numbers[j + 1]) {
                    //使用临时变量辅助 两个元素互换位置
                    int temp = numbers[j];
                    numbers[j] = numbers[j + 1];
                    numbers[j + 1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(numbers));
        /**
         * 降序
         */
        //第一层,只需要对比(元素总数-1)次即可
        for (i = 0; i < numbers.length - 1; i++) {
            //第二层,只需要对比(元素总数-1-已经对比过的次数)次即可
            for (j = 0; j < numbers.length - 1 - i; j++) {
                //降序:相邻的两个元素对比,当左边的比右边小时 ,需要互换位置
                if (numbers[j] < numbers[j + 1]) {
                    //使用临时变量辅助 两个元素互换位置
                    int temp = numbers[j];
                    numbers[j] = numbers[j + 1];
                    numbers[j + 1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(numbers));

    }

}
View Code

打印结果

技术分享图片

 

简单谈谈 数组排序 的方法 【自定义算法 、 冒泡算法 等】

原文:https://www.cnblogs.com/c2g5201314/p/13112156.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!