精华内容
下载资源
问答
  • Java如何对数组进行排序排序是一种以一定顺序排列列表或数组元素的方法。该顺序可以是升序或降序。数字和词典顺序(字母顺序)是一种广泛使用的顺序。在本节中,我们将学习如何对数组进行排序在Java中使用升序和降序...

    Java如何对数组进行排序

    排序是一种以一定顺序排列列表或数组元素的方法。该顺序可以是升序或降序。

    数字和

    词典顺序(字母顺序)是一种广泛使用的顺序。

    在本节中,我们将学习

    如何对数组进行排序在Java中使用

    升序和

    降序使用

    sort()方法,而

    sort()方法。除此之外,我们还将在

    Java中学习

    如何对子数组进行排序

    按升序排列数组

    升序将元素从低到高排列。也称为

    自然顺序或

    数字顺序。我们可以通过以下方式执行排序:

    使用sort()方法

    不使用方法

    使用for循环

    使用用户定义的方法

    使用sort()方法

    在Java中,

    数组是

    提供sort()方法以按升序对数组进行排序的java.util包。它使用

    Dual-Pivot快速排序算法进行排序。它的复杂度为

    O(n log(n))。这是一个

    static方法,该方法将

    数组解析为参数,并且不返回任何内容。我们可以使用类名直接调用它。它接受类型为int,float,double,long,char,byte的数组。

    语法:

    publicstaticvoidsort(int[] a)

    其中

    a是短数组。

    注意:类似于Arrays类,Collections类还提供了sort()方法来对数组进行排序。但是它们之间是有区别的。 Arrays类的sort()方法适用于原始类型,而Collections类的sort()方法适用于对象Collection,例如LinkedList,ArrayList等。

    让我们使用Arrays类的sort()方法对数组进行排序。

    在下面的程序中,我们定义了一个整数类型的数组。之后,我们调用了Arrays类的sort()方法并解析要排序的数组。为了打印排序后的数组,我们使用了for循环。

    SortArrayExample1.java

    import java.util.Arrays;

    publicclassSortArrayExample1{

    publicstaticvoidmain(String[] args) {

    //defining an array of integer type

    int [] array =newint [] {

    90, 23, 5, 109, 12, 22, 67, 34}

    ;

    //invoking sort() method of the Arrays class

    Arrays.sort(array);

    System.out.println("Elements of array sorted in ascending order: ");

    //prints array using the forloop

    for(int i = 0;i

    System.out.println(array[i]);

    }

    }

    }

    输出:

    Array elements in ascending order:

    5

    12

    22

    23

    34

    67

    90

    109

    在上面的程序中,我们还可以使用

    Arrays class的toSting()方法进行打印数组,如以下语句所示。它返回指定数组的字符串表示形式。

    System.out.printf(Arrays.toString(array));

    使用for循环

    在下面的示例中,我们初始化了一个整数类型的数组,并且

    SortArrayExample2.java

    publicclassSortArrayExample2 {

    publicstaticvoidmain(String[] args) {

    //creating an instance of an array

    int[] arr =newint[] {78, 34, 1, 3, 90, 34, -1, -4, 6, 55, 20, -65};

    System.out.println("Array elements after sorting:");

    //sorting logic

    for(int i = 0;i

    for(int j = i + 1;j

    int tmp = 0;

    if(arr[i] >arr[j]) {

    tmp = arr[i];

    arr[i] = arr[j];

    arr[j] = tmp;

    }

    }

    //prints the sorted element of the array

    System.out.println(arr[i]);

    }

    }

    }

    输出:

    Array elements after sorting:

    -65

    -4

    -1

    1

    3

    6

    20

    34

    34

    55

    78

    90

    使用用户定义的方法

    在下面的示例中,我们定义了一个名为

    sortArray()的方法,该方法包含对数组进行排序的逻辑

    SortArrayExample3.java

    publicclassSortArrayExample3 {

    publicstaticvoidmain(String[] args) {

    int i;

    //initializing an array

    int array[] = {12, 45, 1, -1, 0, 4, 56, 23, 89, -21, 56, 27};

    System.out.print("Array elements before sorting: \n");

    for(i = 0;i

    System.out.println(array[i]);

    //invoking user defined method

    sortArray(array, array.length);

    System.out.print("Array elements after sorting: \n");

    //accessing elements of the sorted array

    for(i = 0;i

    System.out.println(array[i]);

    }

    }

    //user defined method to sort an array in ascending order

    privatestaticvoidsortArray(int array[], int n) {

    for(int i = 1;i

    int j = i;

    int a = array[i];

    while((j >0) &&(array[j-1] >a)) {

    array[j] = array[j-1];

    j--;

    }

    array[j] = a;

    }

    }

    }

    输出:

    Array elements before sorting:

    12

    45

    1

    -1

    0

    4

    56

    23

    89

    -21

    56

    27

    Array elements after sorting:

    -21

    -1

    0

    1

    4

    12

    23

    27

    45

    56

    56

    89

    按降序排列数组

    降序将元素从高到低排列。我们可以通过以下方式执行排序:

    使用reverseOrder()方法

    不使用方法

    使用for循环

    使用用户定义的方法

    使用reverseOrder()方法

    Java Collections 类提供了

    reverseOrder()方法,以反向字典顺序对数组进行排序。这是一个静态方法,因此我们可以使用类名直接调用它。它不解析任何参数。它返回一个

    比较器,强加自然顺序(升序)的相反。

    这意味着数组通过使用sort()方法以升序对元素进行排序,之后,reverseOrder()方法将反转自然顺序,然后我们以降序获得排序后的数组。

    语法:

    publicstatic Comparator reverseOrder()

    假设a []是要按降序排序的数组。我们将通过以下方式使用reverseOrder()方法:

    Arrays.sort(a, Collections.reverseOrder());

    让我们按降序对数组进行排序。

    在下面的程序中,要注意的一点是,我们已将数组定义为

    Integer。因为reverseOrder()方法不适用于原始数据类型。

    SortArrayExample4.java

    import java.util.Arrays;

    import java.util.Collections;

    publicclassSortArrayExample4 {

    publicstaticvoidmain(String[] args) {

    Integer [] array = {23, -9, 78, 102, 4, 0, -1, 11, 6, 110, 205};

    // sorts array[] in descending order

    Arrays.sort(array, Collections.reverseOrder());

    System.out.println("Array elements in descending order: " +Arrays.toString(array));

    }

    }

    输出:

    Array elements in descending order: [205, 110, 102, 78, 23, 11, 6, 4, 0, -1, -9]

    让我们看看另一个按字母顺序对数组元素进行排序的程序。

    SortArrayExample5.java

    import java.util.Arrays;

    import java.util.Collections;

    publicclassSortArrayExample5 {

    publicstaticvoidmain(String[] args) {

    String [] strarray = {"Mango", "Apple", "Grapes", "Papaya", "Pineapple", "Banana", "Orange"};

    // sorts array[] in descending order

    Arrays.sort(strarray, Collections.reverseOrder());

    System.out.println("Array elements in descending order: " +Arrays.toString(strarray));

    }

    }

    输出:

    Array elements in descending order: [Papaya, Pineapple, Orange, Mango, Grapes, Banana, Apple]

    使用for循环

    在下面的示例中,我们初始化了一个整数数组并执行排序

    SortArrayExample6.java

    publicclassSortArrayExample6 {

    publicstaticvoidmain(String[] args) {

    int temp;

    //initializing an array

    int a[]={12,5,56,-2,32,2,-26,9,43,94,-78};

    for(int i = 0;i

    for(int j = i + 1;j

    if(a[i]

    temp = a[i];

    a[i] = a[j];

    a[j] = temp;

    }

    }

    }

    System.out.println("Array elements in descending order:");

    //accessing element of the array

    for(int i = 0;i <=a.length - 1;i++) {

    System.out.println(a[i]);

    }

    }

    }

    输出:

    Array elements in descending order:

    94

    56

    43

    32

    12

    9

    5

    2

    -2

    -26

    -78

    使用用户定义的方法

    SortArrayExample7.java

    import java.util.Scanner;

    publicclassSortArrayExample7 {

    publicstaticvoidmain(String[] args) {

    int n, temp;

    Scanner s =newScanner(System.in);

    System.out.print("Enter the number of elements: ");

    n = s.nextInt();

    int a[] =newint[n];

    System.out.println("Enter the elements of the array: ");

    for(int i = 0; i

    a[i] = s.nextInt();

    }

    for(int i = 0; i

    for(int j = i + 1;j

    if(a[i] < a[j]) {

    temp = a[i];

    a[i] = a[j];

    a[j] = temp;

    }

    }

    }

    System.out.println("Array elements in descending order:");

    for(int i = 0; i < n - 1; i++) {

    System.out.println(a[i]);

    }

    System.out.print(a[n - 1]);

    }

    }

    输出:

    Enter the number of elements: 7

    Enter the elements of the array:

    12

    5

    56

    -2

    32

    2

    -26

    Array elements in descending order:

    56

    32

    12

    5

    2

    -2

    -26

    如何对子数组进行排序

    从该数组派生的数组称为

    subarray。假设

    a[]是一个包含元素[12、90、34、2、45、3、22、18、5、78]的数组,并且我们想对数组元素从34到18进行排序它将对子数组

    [34、2、45、3、22、18]进行排序,并保持其他元素不变。

    要对子数组进行排序,请使用Arrays类提供名为

    sort()的静态方法。它将指定范围的数组按升序排序。我们还可以对类型为

    long,double,float,char,byte,等的数组进行排序。

    语法:

    publicstaticvoidsort(int[] a, int fromIndex, int toIndex)

    该方法解析以下三个参数:

    a要排序的数组。

    fromIndex子数组的第一个元素的索引。它参与排序。

    toIndex:子数组的最后一个元素的索引。它不参与排序。

    如果formIndex等于toIndex,则要排序的范围为空。如果

    fomIndex大于toIndex,则抛出IllegalArgumentException。如果

    fromIndex <0或toIndex> a.length,也会引发ArrayIndexOutOfBoundsException。

    让我们通过Java程序对子数组进行排序。

    SortSubarrayExample。 Java

    import java.util.Arrays;

    publicclassSortSubarrayExample {

    publicstaticvoidmain(String[] args) {

    //defining an array

    int[] a = {12, 90, 34, 2, 45, 3, 22, 18, 5, 78};

    // sorts subarray form index 2 to 7

    Arrays.sort(a, 2, 7);

    //prints array using the forloop

    for(int i = 0;i

    System.out.println(a[i]);

    }

    }

    }

    输出:

    Sorted Subarray:

    12

    90

    2

    3

    22

    34

    45

    18

    5

    78

    展开全文
  • 在任何语言中,对数字排序绝对是一个必不可少的环节,在js中我们可以直接使用sort()方法来对数组进行排序。sort() 方法用于对数组的元素进行排序, 排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母...

    在任何语言中,对数字排序绝对是一个必不可少的环节,在js中我们可以直接使用sort()方法来对数组进行排序。sort() 方法用于对数组的元素进行排序,
    排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。不过你如果单纯只用sort()的话结果会出现一些意外,因为它的排序方法和我们所需要的有些不一样

    	var arr=[10,15,20,9,7,66];
        var result=arr.sort();
        console.log(result);
    

    在这里插入图片描述
    这时你就需要在sort里面再写一个函数来进行排序了

    var arr=[10,15,20,9,7,66];
                            var result=arr.sort(function(a,b){
                                if(a>b){
                                    return 1;
                                }
                                else if(a<b){
                                    return -1;
                                }else{
                                    return 0;
                                }
                            });
                            console.log(result);
    

    在这里插入图片描述
    这时便是我们所需要的的排序结果了,如果你需要的是降序,那么将a>b后面return改为-1即可,a<b后面return则改为1.
    同时,你也可以使用冒泡法排序,这种算法在C语言当中应该就接触过,十分容易理解,就是将两个数进行比较,然后在进行换位,最后得出结果

    for (var i = 0; i < arr.length-1; i++) {   //控制比较几轮
                for (var j = 0; j < arr.length - 1 - i; j++) {  //控制每轮内的比较
                    if (arr[j] > arr[j + 1]) {
                        var temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
    

    在这里插入图片描述

    展开全文
  • <p>I have this array <pre><code>Array ( [146] => Post Object ( [ID] => 5664 [post_author] => 8 [post_date] => 2016-04-10 16:21:55 ... Post Object"</em>....<p>i.e.... </div>
  • 实现思路:php中提供一些原生态的数组排序函数,如下:sort():对数组进行升序排列rsort():对数组进行降序排列asort():使用关联数组的值,对数组进行升序排列ksort():使用关联数组的键,对数组进行升序排列arsort():...

    摘要:

    下文讲述php中数组排序的方法分享,如下所示;

    实现思路:

    php中提供一些原生态的数组排序函数,如下:

    sort():对数组进行升序排列

    rsort():对数组进行降序排列

    asort():使用关联数组的值,对数组进行升序排列

    ksort():使用关联数组的键,对数组进行升序排列

    arsort():使用关联数组的值,对数组进行降序排列

    krsort():使用关联数组的键,对数组进行降序排列

    下文将通过示例的方式讲述数据的排序

    echo "maomao365.com 数组长度获取的示例分享:\n";

    $a=array("m","a","t");

    sort($a);

    $b=array(8,16,56,2,99);

    sort($b);

    $c=array("m","a","t");

    rsort($c);

    $d=array(8,16,56,2,99);

    rsort($d);

    $e=array("m"=>"1","a"=>"2","t"=>"3");

    asort($e);

    $f=array("m"=>"1","a"=>"2","t"=>"3");

    arsort($f);

    $g=array("m"=>"1","a"=>"2","t"=>"3");

    ksort($g);

    $h=array("m"=>"1","a"=>"2","t"=>"3");

    krsort($h);

    var_dump($a);

    var_dump($h);

    ?>

    展开全文
  • js如何对数组进行排序

    千次阅读 2013-09-02 09:44:31
    js 的数组不是有个排序的方法sort吗。 nameArray.sort(function(a,b){ //排序的逻辑处理 a = parseInt(a.substring(4)); b = parseInt(b.substring(4)); console.log(a,b); if(a > b){
    js 的数组不是有个排序的方法sort吗。
    nameArray.sort(function(a,b){
            //排序的逻辑处理
    
            a = parseInt(a.substring(4));
            b = parseInt(b.substring(4));
            console.log(a,b);
            if(a > b){
            return 1;
            }else if(a == b){
            return 0;
            }else{
            return -1;
            }
    
    });
    
    a和b就代表数组中的对象

    首先,我们来看一下JS中sort()和reverse()这两个函数的函数吧

      reverse();这个函数是用来进行倒序,这个没有什么可说的,所谓倒序就是大的在前面,小的在后面。

      比如:

      var array1 = [0,1,5,10,15];

      array1.reverse();//结果为:15,10,5,1,0

      sort([参数]);这个函数是用来对数组进行正序排列的,但是,我发现了,大家好像都比较常规的把这个函数给大多数语言一样的使用!!但是,没错,你发现了这个函数其实是有参数的。

      反正,在我们学习JS这门课程的时候,老师是没有讲解这个函数是有这个参数的。

      刚刚我已经说了,它给我们其它语言的正序排列函数是有区别的,给大家举个例子吧.

      var array1 = [0,1,5,10,15];

      array1.sort();//结果为:0,1,10,15,5

      大家可以自己去试试看看是不是这个结果!!当我看到结果的时候,有点不知道为什么。难道,这个函数不是做正序排列,于是去网上找了相关资料,在W3CSchool中看到,这个函数的一些说明。如下图

      

     

      大家仔细阅读上图中的解释,其中我用红线部分的地方,是这个函数在进行排序的过程影响其值的根本原因。(其实,在使用sort()进行排序的时候会调用toString()函数将其值转换成字符串在进行比较,是按ASCII进行比较的)

      哪么不难理解:1的ASCII值肯定要比5的ASCII值小,由于是正序哪么越小的就越在前面!!哪么我们要怎么做才能正确的使其排序达到我们想要的效果 呢。这个时候,就会使用,sort()中的参数了。这参数指向的是一个函数!我相信大家看到上面的图,我就不在做过多的解释了。看一下,下面的代码,我在 分析一下,他的实现过程吧。

      

     

      注:sort() 方法可以接受一个 方法为参数 ,这个方法有两个参数。分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递 给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

      首先,要说明一下!排序算法是离不开冒泡算法的!这里同样是使用了冒泡算法,但是我们要怎么来理解这个算定义函数呢!

      这个算定义函数必须有两个参数(这个在进行排序,换而言之就是谁大谁就在前面!!就是比较大小。)

      函数的的意思是,当v1v2为1,v1==v2为0

      根据冒泡算法:传递两个值给v1和v2,array[0] ="0",array[1]="2" 那么,v1=0,v2=2,

      第一轮:按照上面的规定,不交换位置,那么第一次下来是:0,2,1,0.5因为0比任何的数都小所以第一轮结束,他始终在最前面我就不分析了

      第二轮:v1=2,v2=1;

      第一次:由于v1>v2所以v1和v2的值交换位置结果为:0,1,2,0.5;

      第二次:这个时候v1=1,v2=2进行比较结题为:0,1,2,0.5,

      第三次:这个时候v1=1,v2=0.5由于v1>v2所以v2和v2交换位置,其结果为:0,0.5,1,2

      第四次:这个时候v1=0.5,v2=2进行比较其结果为:0,0.5,1,2

      第三轮:v1=1,v2=2;

      第一次:进行比较其结果为0,0.5,1,2这个时候由于已经到数组的么尾了。退出函数。返回结果。

      好了,这个就是sort()函数的一个探讨,希望,大家看完此文章对JS的排序函数有一个比较深入的了解。当然,我讲解的这种写法是一种比较通用的写法, 大家也可以按照自己的需要写一下,倒序,大、小写等 等 ...这里就不在多说了!!可能有些许地方,讲解得不够好。希望大家能够谅解。如果有什么疑问,请在文章下面留言。


    展开全文
  • 1.字符串排序 sort() var fruits = ["Banana", "Orange", ...注意:使用 sort() 对数值进行排序会产生错误,因为此方法是按字符串顺序进行排序的,如 “25” 大于 “100”,因为 “2” 大于 “1”。 2.反转数组,r...
  • <p>I have an array i want to sort it into ascending order. <p>Below is array i have. <pre><code>Array [0] => 101.6mm x 101.6mm [1] => 50.8mm x 50.8mm [3] =>... </div>
  • 这些天仍然在讲数据结构方面的课程,关于数组的排序问题,下面是一个简单的范例using ... /// 这个例子程序是用来演示对数组的排序,自定义排序,和利用linq语法进行处理 /// 作者:陈希章 /// class Progra
  • 展开全部java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码e69da5e887aa3231313335323631343130323136353331333337623463:importjava.util.ArrayList;importjava.util.Arrays...
  • 用Java对数组进行排序我试图制作一个由10个整数组成的程序,这些整数都有一个随机值,到目前为止还不错。但是,现在我需要对它们进行排序,从最低值到最高值,然后将其打印到屏幕上,我将如何这样做呢?(很抱歉,...
  • 在这里,您将找到一个有关如何按升序或降序对数组进行排序的示例。packageorg.nhooo.example.util;importjava.util.Arrays;importjava.util.Collections;publicclassSortArrayWithOrder{publicstaticvoidmain...
  • java中对数组进行排序Java Array is like a container that can hold a fixed number of the same type of items, it can be primitive types as well as Objects. Java Array就像一个容器,可以容纳固定数量的相同...
  • Java示例,展示如何使用Arrays.sort()对Array进行排序。 该代码应该是不言自明的。 import java.util.Arrays; import java.util.Collections; public class ArraySorting{ public static void main(String ...
  • <p>I have an array, and I would like to out put value on specific order. How I can do this.... <p><strong>Array</strong></p> <pre><code>$age = array(48,37,43,56,32);...<p>I have put <code>array $age...
  • 让我们创建一个对数组进行排序的方法,该方法能够按某种属性排列对象。 创建排序功能 var sortBy = (function () { var toString = Object.prototype.toString, // default parser function parse = ...
  • how can one sort an integer array (not a list) in-place in Python 2.6? Is there a suitable function in one of the standard libraries?In other words, I'm looking for a function that would do something....
  • java中对数组进行排序 Java Array is like a container that can hold a fixed number of the same type of items, it can be primitive types as well as Objects. Java Array就像一个容器,可以容纳...
  • 不改变数组的值对数组进行排序

    千次阅读 2016-11-26 15:22:36
    如何不改变数组各元素的值对数组进行排序
  • 许多快速排序算法(例如mergesort和quicksort)can be implemented ...因此,解决此问题的一种可能方法是采用其中一种排序算法并对其进行处理,就好像您要对链接列表而不是正常序列进行排序一样.例如,这是一种...
  • <p>I generate an array with rearranged date values in it <pre><code>$totert = array( array('2011','07','25'), array('2011','07','27'), array('2011','06','25'), array('2011','06','02'), ...
  • 对数组进行排序

    2012-04-15 22:00:07
    比如有一个整型数组: ...我们如何进行排序呢?你这个时候是否在想快速排序的算法?看看下面的实现方法:  import java.util.*; public class Sort{ public static void main(String[] args){ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 445
精华内容 178
关键字:

如何对数组进行排序