java中Arrays.sort方法的排序

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。

相关文章:

  1. LeetCode:55. Jump Game(跳远比赛)
  2. Leetcode:300. Longest Increasing Subsequence(最大增长序列)
  3. LeetCode:560. Subarray Sum Equals K(找出数组中连续子串和等于k

       Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,是非常好用的,一般需要排序的时候,我是直接使用;如果是逆序排序需要自己定义排序规则。

方法1:

package leetcode;

import org.junit.Test;
import java.util.Arrays;
import java.util.Comparator;

/**
 * @author zhangyu
 * @Description:Arrays.sort()可以使用内部的比较器进行比较,也可以自己定义比较器进行逆序排序
 * @date 2018/12/10 14:06
 **/
public class ArraysSortTest {
    @Test
    public void testArraysSort() {
        Integer[] nums = {5, 2, 1, 3, 4, 9, 0, 7, 8, 6};
        Comparator comparator = new MyComparator();
        Arrays.sort(nums, comparator);
        System.out.println(Arrays.toString(nums));
    }
}

class MyComparator implements Comparator {
    @Override
    public int compare(Integer a, Integer b) {
        if (a > b) {
            return -1;
        } else if (a == b) {
            return 0;
        } else {
            return 1;
        }
    }
}

时间复杂度:O(n.logn)

空间复杂度:O(1) 


方法2:

package leetcode;

import org.junit.Test;
import java.util.Arrays;
import java.util.Comparator;

/**
 * @author zhangyu
 * @Description: Arrays.sort()可以使用内部的比较器进行比较,也可以自己定义比较器进行逆序排序
 * @date 2018/12/10 14:06
 **/
public class ArraysSortTest2 {
    @Test
    public void testArraysSort() {
        Integer[] nums = {5, 2, 1, 3, 4, 9, 0, 7, 8, 6};
        Arrays.sort(nums, new Comparator() {
            @Override
            public int compare(Integer a, Integer b) {
                if (a > b) {
                    return -1;
                } else if (a == b) {
                    return 0;
                } else {
                    return 1;
                }
            }
        });
    }
}

时间复杂度:O(n.logn) 

空间复杂度:O(1)


方法3:

package leetcode;

import org.junit.Test;

import java.util.Arrays;
import java.util.Comparator;

/**
 * @author zhangyu
 * @Description:Arrays.sort()可以使用内部的比较器进行比较,也可以自己定义比较器进行逆序排序
 * @date 2018/12/10 14:06
 **/
public class ArraysSortTest3 {
    @Test
    public void fun() {
        Integer[] nums = {5, 2, 1, 3, 4, 9, 0, 7, 8, 6};
        Arrays.sort(nums, new Comparator() {
            @Override
            public int compare(Integer a, Integer b) {
                return b - a;
            }
        });
    }
}

时间复杂度:O(n.logn)

空间复杂度:O(1)

你可能感兴趣的:(java基础)