精华内容
下载资源
问答
  • java数组排序函数
    2021-04-07 15:11:32

    数组排序自带函数java.util.Arrays.sort(arr),arr由小到大已排序

    更多相关内容
  • java数组排序函数

    千次阅读 2020-06-08 16:20:14
    排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数java语言有Arrays类(不是Array)。...Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。

    1.对基本数据类型的数组的排序

    (1)Arrays类中的sort()使用的是“经过调优的快速排序法”;

    (2)比如int[],double[],char[]等基数据类型的数组,Arrays类之只是提供了默认的升序排列,没有提供相应的降序排列方法。

    (3)要对基础类型的数组进行降序排序,需要将这些数组转化为对应的封装类数组,如Integer[],Double[],Character[]等,对这些类数组进行排序。(其实还不如先进行升序排序,自己在转为降序)。

    用默认的升序对数组排序

    函数原型

    • static void sort(int[] a) 对指定的 int 型数组按数字升序进行排序。
    • static void sort(int[] a, int fromIndex, int toIndex) 对指定 int 型数组的指定范围按数字升序进行排序。

    代码实例

    import java.util.Arrays;
    public class ArraysSort_11 {
        public static void main(String args[])
        {
            int[] a={1,4,-1,5,0};
            Arrays.sort(a);
            //数组a[]的内容变为{-1,0,1,4,5}
            for(int i=0;i<a.length;i++)
                System.out.print(a[i]+"  ");
        }
    }
    

    2.对复合数据类型的数据的排序

    函数原型:
    (1)public static void sort(T[] a,Comparator c) 根据指定比较器产生的顺序对指定对象数组进行排序。

    (2)public static void sort(T[] a,int fromIndex,int toIndex,Comparator c) 根据指定比较器产生的顺序对指定对象数组的指定范围进行排序。

    说明:这个两个排序算法是“经过调优的合并排序”算法。
    代码实例

    package com.shuzu;
    
    import java.util.Arrays;
    import java.util.Comparator;
    
    public class fuhepaixu {
    	Point[] arr;
    	fuhepaixu(){
    		arr =new Point[4];
    		for(int i=0;i<4;i++) {
    			arr[i]=new Point();
    		}
    	}
    	public static void main(String args[]) {
    		fuhepaixu f =new fuhepaixu();
    		f.arr[0].x=1;
    		f.arr[1].x=2;
    		f.arr[2].x=0;
    		f.arr[3].x=4;
    		f.arr[0].y=2;	
    		f.arr[1].y=3;
    		f.arr[2].y=1;
    		f.arr[3].y=0;
    		Arrays.sort(f.arr,new myComparator());
    		for(int j=0;j<4;j++) {
    			System.out.println("("+f.arr[j].x+","+f.arr[j].y+")");
    		}
    	}
    
    }
    
    class Point{
    	int x;
    	int y;
    }
    
    class myComparator implements Comparator{
    	public int compare(Object arg0,Object arg1) {
    		Point t1 =(Point)arg0;
    		Point t2 =(Point)arg1;
    		if(t1.x!=t2.x) {
    			return t1.x>t2.x?1:-1;
    		}
    		else {
    			return t1.y>t2.y?1:-1;
    		}
    	}
    }
    

    Comparator是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足要求时,可写一个比较器来完成两个对象之间大小的比较。Comparator体现了一种策略模式(strategy design pattern),就是不改变对象自身,而用一个策略对象(strategy object)来改变它的行为。

    PS:关于?:公式
    a>b?A:B
    意思是如果a>b则这个式子的值为A;
    否则值为B

    展开全文
  • Java数组排序的方法

    千次阅读 2021-07-29 11:16:24
    1.快速排序:首先是最简单的Array.sort,直接进行排序: public static void main(String[] args) { int[] arr = {4,3,5,1,7,9,3};...点击运行即可输出已排序数组数字。 2.部分排序法:使用Array.sort

    1.快速排序:首先是最简单的Array.sort,直接进行排序:

    public static void main(String[] args) {        
            int[] arr = {4,3,5,1,7,9,3};
            Arrays.sort(arr);
            for (int i : arr){
                System.out.println(i);
            }
    

    点击运行即可输出已排序的数组数字。

    2.部分排序法:使用Array.sort还可进行选择想要排序的部分数字,如将下角标编号为1~4的数字进行排序,其他数字顺序不变。

    public static void main(String[] args) {        
            int[] arr = {4,3,5,1,2,9,3,0};        
            Arrays.sort(arr,1,4);        
            for (int i = 0;i<arr.length;i++){
                System.out.print(arr[i]+",");
            }
        }
    

    输出结果为:4,1,3,5,2,9,3,0, 可见仅下标为1~4的数字进行了排序。

    3.冒泡排序法:顾名思义,从下到上,两两进行比较,越小的越往上,从而形成由小到大的排序。

    public static void bubble(int[] arr){        
            int temp;
            //根据角标进行比较,
            for(int i = 0; i<arr.length; i++){
                //j是数组的最后一个角标
                for (int j = arr.length-1; j > i; j--) {                
                    if (arr[j] < arr[j - 1]) {
                        //从后往前进行比较,小数往前,一轮之后最小数就在最前面了
                        temp = arr[j - 1];
                        arr[j - 1] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
        }    
        public static void main(String[] args) {    
            int[] arr = {3,22,5,3,66,2,9};        
            bubble(arr);        
            //使用foreach循环输出
            for(int x : arr){
                System.out.println(x);
            }
            //使用字符串表达形式输出,输出形式更为直观        
            System.out.println(Arrays.toString(arr));
        }
    
    展开全文
  • JAVA入门学习 —数组排序的方法

    千次阅读 2022-04-20 13:26:09
    冒泡排序(Bubble Sort)2.选择排序(Select Sort)3.插入排序(Insert Sort)4.希尔排序(Shell Sort)5.快速排序(Quick Sort)6.归并排序(Merge Sort)7.堆排序(Heap Sort)8.计数排序 (Count Sort)9.桶排序(Bucket Sort)10....


    在这里插入图片描述

    1.冒泡排序(Bubble Sort)

    冒泡排序的思想:
           从序列的一端开始向另一端冒泡,可以从左往右冒泡,也可以从右往左冒泡,依次比较相邻的两个数的大小(比大还是比小看要求)。
    在这里插入图片描述

    import java.util.Arrays;
    //冒泡排序
    public class BubbleSort_01 {
    	public static void main(String[] args) {
    		int a[]={3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};
    		for (int i = 0; i < a.length-1; i++) {
    			for (int j = 0; j < a.length-1-i; j++) {
    				if (a[j]>a[j+1]) {
    					int temp=a[j];
    					a[j]=a[j+1];
    					a[j+1]=temp;
    				}
    			}
    		}
    		System.out.println(Arrays.toString(a));
    	}
    }
    
    

    2.选择排序(Select Sort)

    选择排序的思想:
           首先,找到数组中最小(最大)的元素,拎出来,将它和数组的第一个元素交换位置,第二步,在剩下的元素中继续寻找最小(最大)的元素,拎出来,和数组的第二个元素交换位置,如此循环,知道整个数组排序完成。
    在这里插入图片描述

    import java.util.Arrays;
    //选择排序:先定义一个记录最小元素的下标,然后循环一次后面的,找到最小的元素,最后将他放到前面排序好的序列。
    public class SelectSort_02 {
    	public static void main(String[] args) {
            //标记第一个为待比较的数
            //然后从后面遍历与第一个数比较
            //如果小,就交换最小值
            //保存最小元素的下标
            //找到最小值后,将最小的值放到第一的位置,进行下一遍循环
            int a[] = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
            for (int i = 0; i < a.length - 1; i++) {
                int index = i;
                for (int j = i + 1; j < a.length; j++) {
                    if (a[j] < a[index]) {
                        index = j;
                    }
                }
                int temp = a[index];
                a[index] = a[i];
                a[i] = temp;
            }
            System.out.println(Arrays.toString(a));
        }
    }
    

    3.插入排序(Insert Sort)

    插入排序的思想:
           和我们打扑克牌的时候一样,从牌堆里一张一张摸起来的牌都是乱序的,我们会把摸起来的牌插入到左手中合适的位置,让左手中的牌时刻保持一个有序的状态。
           那如果我们不是从牌堆中摸牌,而是左手里面初始化就是一堆乱牌呢?一样的套路,我们把牌往手的右边挪一挪,把手的左边空出一点位置来,然后再乱牌中抽一张出来,插入到左边,再抽一张出来,插入到左边,每次插入都插入到适合的位置时刻保持左手里的牌是有序的,知道右边的牌抽完,则排序完毕。
           在第一轮中,从未排序区域随机拿出一个数字,既然是随机,那我们就获取第一个,然后插入到已排序区域中,此时已排序区域是空,那么就不做比较,默认自身已经是有序的了(在写代码时候,从下标为1的元素开始即可)。
    在这里插入图片描述

    import java.util.Arrays;
     //插入排序:定义一个待插入的数,再定义一个待插入数的前一个数的下标,然后拿待插入数与前面的数组一一比较,最后交换。
        public static void main(String[] args) {
            //长度不减1,是因为要留多一个位置方便插入数
            //定义待插入的数
            //找到待插入数的前一个数的下标
            //拿a[i]与a[i-1]的前面数组比较
            int a[] = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
            for (int i = 0; i < a.length; i++) {
                int insertValue = a[i];
                int insertIndex = i - 1;
                while (insertIndex >= 0 && insertValue < a[insertIndex]) {
                    a[insertIndex + 1] = a[insertIndex];
                    insertIndex--;
                }
                a[insertIndex + 1] = insertValue;
            }
            System.out.println(Arrays.toString(a));
        }
    }
    

    4.希尔排序(Shell Sort)

    希尔排序的思想:
           首先它把较大的数据集合分割成若干个小组(逻辑上分组),然后对每一个小组分别进行插入排序。
           增量这里可以有所不同,比如有10个数要进行排序,你设置的增量是4,那么a[0],a[4]与a[8],a[1],a[6]与a[9]是一组,分组进行插入排序,之后再缩小增量,再进行插入排序。
    在这里插入图片描述

    import java.util.Arrays;
    //希尔排序:插入排序的升级
    public class ShellSort_04 {
            //将整个数组分为若干个子数组
            //遍历各组的元素
            //交换元素
            int a[] = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
            for (int gap = a.length / 2; gap > 0; gap = gap / 2) {
                for (int i = gap; i < a.length; i++) {
                    for (int j = i - gap; j >= 0; j = j - gap) {
                        if (a[j] > a[j + gap]) {
                            int temp = a[j];
                            a[j] = a[j + gap];
                            a[j + gap] = temp;
                        }
                    }
                }
            }
            System.out.println(Arrays.toString(a));
        }
    }
    

    5.快速排序(Quick Sort)

    6.归并排序(Merge Sort)

    7.堆排序(Heap Sort)

    8.计数排序 (Count Sort)

    9.桶排序(Bucket Sort)

    10.基数排序(Raix Sort)

    其他排序方法请参考:这篇博客 或者 这篇博客

    展开全文
  • 基数排序:先通过他们的个位数进行排序,再把个位排好的放到新数组中,再对他们的十位数进行排序(此时排完个位数都放在同一区域内并且个位数已经排好),再对他们的百位进行排序,一直排到对数组里最大的的位数进行...
  • 如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一: 负值,如果所传递的第一个参数比第二个参数小。 零,如果两个参数相等。 正值,如果第一个参数比第二个参数大。 以上的方法在一维的排序...
  • 首先我们先说一下reverse方法。 reverse 方法将一个 Array 对象中的元素位置进行反转。... 如果数组中只包含数字,那么数字将降序排列,如果数组中还包含其他类型,就将数组反转并返回数组。 sort 方法 返回
  • JAVA中的排序函数

    千次阅读 2020-09-23 16:53:38
    JAVA中的排序函数包括java.util.Arrays中的Arrays.sort();java.util.Collections中的Collections.sort()
  • Java数组排序:Java sort()方法

    万次阅读 多人点赞 2019-07-05 23:03:19
    Java 中实现数组排序的方式很多,除了利用 Arrays 类的 sort() 方法外,还可以编写自定义方法来实现自己的排序算法。本文介绍如何使用 Arrays 类提供的 sort() 方法来对数组进行排序。 使用 java.util.Arrays 类...
  • 插入排序的思想是把前面的排好依次往下进行遍历,发现比最后一个数小的把它插入排好序的最后一个数的前面,此时排好的数组可能已经不再有序,就对它进行维护,以此重复上述操作 具体步骤:定义一个指针i,再定义一个...
  • java排序函数

    2021-03-09 01:36:38
    7. 数组排序 函数:Arrays.sort(); [java] view pl...在 caller 的实例中,将实现了 A 接口的对象的引用传给 caller,后调用 call()方法; 注意:步骤 3 中亦可以使用 Caller 的构造函数直接实现。 JAVA 排序的 .........
  • 1.纯字符串数组排序 let myArray = ["people","person","apple","ziv"] console.log(myArray.sort()) // 打印结果[ 'apple', 'people', 'person', 'ziv' ]   其对于字符串数组直接按照字典顺序进行排序。注意:大...
  • PHP数组排序函数

    2021-03-24 11:34:01
    在使用 PHP 进行编程时,有时需要对数组进行排序,通常我们使用的对数组进行排序的方法有冒泡排序、快速排序等等。...通过排序可以对数据进行合理的管理,提高...PHP 中常用的数组排序函数如下表所示:函数说明sort()对...
  • java字符串数组排序

    千次阅读 2022-05-05 11:31:57
    对String类型的字符串数组进行排序 比如: String s[]={"asf","bad","asds","assd"} 这里 s[0]="asf" s[1]="bab" .... 排序: String s[]={"asf","bad","asds","assd"}; n=s.length; Arrays.sort(s,0,n)...
  • /*java数组排序 对象数组排序基本类型的数组可以直接排序但是 引用类型的数组 不能直接排序首先要实现 Comparable 接口并且重载compareTo方法 这个方法在java.until包中的 Arrays 类 的 binarySearch() sort...
  • Java数组排序输出

    千次阅读 2021-11-20 09:57:54
    问题:编写一个程序,在其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后排序(升序)后输出 代码: package com.company; import java.util.Scanner; public class Main { public static void ...
  • 数组排序sort()

    2021-03-05 18:24:55
    [java]代码库数组排序sort()sort()方法使数组中的元素按照一定的顺序排列。语法:arrayObject.sort(方法函数)参数说明:1.如果不指定,则按unicode码顺序排列。2.如果指定,则按所指定的排序方法排序。myArray.sort...
  • java 数组排序 Arrays.sort()用法

    千次阅读 2020-11-27 14:23:14
    java中自带的Arrays.sort()函数可以免去很多时候所需要的排序方法时间。 Arrays.sort()默认按照从小到大排序(数组), 如果是字符,则是按照字典序排序 例: public class Test { public static void main(String[] ...
  • 详述Java中sort排序函数

    万次阅读 多人点赞 2022-06-04 19:08:11
    手写一个排序算法的效率是很慢的,当然这也不利于我们在比赛或者工程中的实战,如今几乎每个语言的标准库中都有排序算法...通常,在看有关算法书籍的时候,会发现都说有关数组排序算法,而且使用的都是随机访问,但是
  • Java一维数组排序

    2022-02-18 17:39:32
    选择排序 只使用一个主函数 package test2; import java.util.*; public class Test0测试 ... System.out.println("请输入要排序数组:"); Scanner in=new Scanner(System.in); for(int i=0;i<arr.length;
  • 本篇文章主要介绍了Java实现数组反转翻转的方法实例,详细的介绍了3种实现方法,有兴趣的可以了解一下。
  • 主要介绍了Java实现数组去除重复数据的方法,结合实例形式详细分析了java数组去除重复的几种常用方法、实现原理与相关注意事项,需要的朋友可以参考下
  • 1、在类里创建冒泡排序方法 2、遍历数组输出数组元素 3、创建初始值,创建类对象,使用排序方法
  • Java自带的排序函数归纳总结

    千次阅读 2022-02-11 00:21:45
    Java中强大的jdk给我们提供了许多现成能使用的排序算法 ......
  • Java实现数组排序

    千次阅读 2020-12-01 10:31:45
    选择排序法即是先将第一个数据分别与右侧其他数据依次比较,当第一个数据较大时,对调两数据位置,最终第一个位置的数据将是数组元素的最小值;再对第二个数据分别与右侧其他数据依次比较,当第二个数据较大时,对调...
  • Java数组逆向排序(从大到小排序

    千次阅读 2021-06-14 19:52:01
    因为java中的Arrays.sort()方法只可以对数组从小到大排序,如果想要从大到小排序,必须从写此方法的比较器。 具体方法见代码: import java.util.*; public class Main { public static void main(String[] ...
  • 排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则
  • Java数组排序函数

    千次阅读 2013-11-11 14:41:08
    import java.util.Arrays; static int [] a = new int [15]; Arrays.sort(a, 0, n); //数组排序算法
  • Java如何对类对象数组排序

    千次阅读 2021-08-03 22:06:01
    用于基本数据类型的数组排序,用到的是Arrays类下的重载静态方法sort( ); 只需要调用sort方法就行,传入数组名为实参。 例如,对整型数组进行排序。 public class ArraysTest { public static void main...
  • 主要介绍了java实现6种字符串数组排序(String array sort),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 172,134
精华内容 68,853
关键字:

java数组排序函数