精华内容
下载资源
问答
  • 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};
            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对double数组排序示例,代码简单,下面我们直接上代码,需要的朋友可以参考下
  • java 对象数组排序

    2020-09-03 18:23:12
    当遇到数组排序时,我们经常会使用学过的几种排序方法,而java 本身提供了Arrays.sort,数据元素较少或者对效率要求不是抬高时,直接使用Arrays.sort来的更容易。查看一下源码后Arrays.sort 本身采用的是快速排序。
  • java数组排序

    2017-09-04 11:39:37
    java数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。
  • Java数组排序方法详解

    千次阅读 2021-02-27 11:03:41
    数组,本身是有序的元素序列,本文我们就来看看Java数组排序的几个方法。一、冒泡排序举 个 栗 子:5 2 0 4 1 3 一个容量为七的数组排升序(降序同理,最大值变最小就ok)①从这组数找那个冒泡的(最大的),把它踢到...

    数组,其实就是一个给定了大小给定了类型的容器,在这容器中有你设定的元素,你可以对这些元素进行各种升降排列,或者找出其中特殊的元素并进行一系列的运算。数组,本身是有序的元素序列,本文我们就来看看Java数组排序的几个方法。

    一、冒泡排序

    举 个 栗 子:5 2 0 4 1 3 一个容量为七的数组排升序(降序同理,最大值变最小就ok)

    ①从这组数中找那个冒泡的(最大的),把它踢到最后 2 0 4 1 3 5

    ②重复上述行为 2 0 1 3 4 5

    ③重复~~ 2 0 1 3 4 5

    ④~~0 1 2 3 4 5

    ⑤~~0 1 2 3 4 5 完成

    Java代码实例:

    dfd7e45036708fb67d699eaa3491c74a.png

    二、选择排序

    还是刚才那个栗子:5 2 0 4 1 3 升序

    ①找到数组中最小的 放到第一个位置 0 5 2 4 1 3

    ②数组中剩下的找到最小的放在第二个位置 0 1 5 2 4 3

    ③ ~~ 0 1 2 5 4 3

    ④~~ 0 1 2 3 5 4

    ⑤~~0 1 2 3 4 5 完成

    Java代码实例:

    74c997fe675a1eea48e9855848859193.png

    三、插入排序

    个人认为就是在摸扑克牌 桌上的牌堆就是你的数组 一张一张的摸到手上,你的数组排序也就完成了。 这次你的牌堆为 5 2 0 4 1 3

    ,依次向手中加牌

    ①摸一张5 5

    ②摸一张2 放5左边 2 5

    ③~~ 0 2 5

    ④~~ 0 2 4 5

    ⑤~~ 0 1 2 4 5

    ⑥~~ 0 1 2 3 4 5

    Java代码实例:

    e9cc7cc493959fc145dbc3812d19fce2.png

    四、希尔排序

    希尔排序其实就是一种间隔交换,这次用个长点的栗子来让大家了解我的意图 一个拥有十个元素的数组

    43 95 38 30 41 72 60 74 24 32

    ①首先

    我以5为间隔。第一个和第六个比较,第二个和第七个比较,第三个和第八个比较......升序不变,降序则置换位置。(比如第一个43和第六个72升序不变换位置,第二个95和第七个60降序置换位置)

    得到置换结果 43 60 38 24 32 72 95 74 30 41

    ②接着我们采用3为间隔,也就是说类似第一个和第五个比较,方法同上。

    4164b8c47e07ee97ae96f90530bd6c92.png

    得到置换结果 24 32 30 41 60 38 43 74 72 95

    ③接着我们采用2为间隔,得到置换结果 :

    24 32 30 38 43 41 60 74 72 95

    ④最后以1为间隔 结果很简单 24 30 32 38 41 43 60 72 74 95

    大家不难发现我取间隔的方式如同下方代码一般,重复 int

    k/2,间隔选取其实并非唯一确定的,针对不同的数组,你们可以根据自己的经验来采用不同方式的间隔,在这里就不啰嗦了。

    Java代码如下

    a4fe38fc41fc46d83e615202da3793e6.png

    现在方案写完了 随机一个拥有十个元素的数组然后打印出排序如下 :

    28e39154784fcd82d1fd27ae391b41dc.png

    希尔排序虽然针对大多数数组排序有较高的效率但是其稳定性却令人堪忧,建议大家写文件时用插入排序,既有效率又算法稳定。

    以上就是为大家介绍的4种Java数组排序方法,在我们处理数组中的数据时能够为我们快速地对数组数据进行排序。当然,在Java中还有其他的排序算法,感兴趣的小伙伴可以观看本站的Java基础教程,学习其他的Java数组排序算法。

    展开全文
  • java数组自定义排序

    2017-10-31 15:35:59
    java中数组的自定义排序,种类繁多,简单实现,可自由操控。
  • 主要给大家整理介绍了最简单易懂的java数组排序方法,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • java实现数组冒泡排序

    2020-09-23 17:59:39
    java实现数组从小到大排序,输出为数组。可以直接拿来用,注释清楚,可读性强,适用于基础练习,课堂作业等
  • 主要介绍了Java简单数组排序,实例分析了基于冒泡法实现数组排序的相关技巧,简单实用,具有一定参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了Java实现的数组去重与排序操作,结合实例形式分析了Java针对数组去重及排序操作相关遍历、排序、判断等使用技巧与注意事项,需要的朋友可以参考下
  • java冒泡排序 代码为排序源代码 简洁明了 无其他
  • JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。  快速排序法主要是运用了Arrays的一个方法Arrays.sort()实现。  冒泡法是运用遍历数组进行比较,通过不断...
  • 主要介绍了java实现6种字符串数组排序(String array sort),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 下面小编就为大家带来一篇java字符串数组进行大小排序的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • NULL 博文链接:https://pridesnow.iteye.com/blog/1453660
  • 在Java中对于字符串数组排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[] arrays = new String[] { gyu, sdf, zf, 大同, 收到, 地方, 三等分, 的人, 反对高铁, 泛代数, 上的投入...
  • Java中String数组排序

    千次阅读 多人点赞 2021-10-12 21:04:53
    为了更加详细的讲解这个方法在数组中的使用,我们来讲解一下这个示例 示例 我们用一个String数组来储存4首歌曲的名字,然后从控制台输入一首歌,并且将它插入到数组里面,并且排序5首歌曲 直接看代码: 数组...

    使用Java compareToIgnoreCase 方法排序

    这个方法我在上一篇文章已经说过如何使用了,也说明了它的原理
    我们可以看一看:点击查看icon-default.png?t=L9C2https://blog.janyork.com/index.php/archives/421/

    为了更加详细的讲解这个方法在数组中的使用,我们来讲解一下这个示例

    示例 

    我们用一个String数组来储存4首歌曲的名字,然后从控制台输入一首歌,并且将它插入到数组里面,并且排序5首歌曲

    直接看代码:

    数组歌曲排序

    import java.util.Scanner;
    public class HgDome {
        public static void main(String[] args) {
    
            //变量跟数组关于初始值问题
    
            String[] musics = new String[]{"Island","Ocean","Pretty","Sun"};
            String[] newMusics = new String[musics.length+1];
            //新歌曲数组
    
            String music;
            //保存用户输入的歌曲名称
    
            int index = musics.length;
            //保存新歌插入位置
    
            //输出插入前的结果
            System.out.print("插入前的数组为:");
            for(int i = 0; i < musics.length ; i++){
                System.out.print(musics[i]+"  ");
            }
            //将数组musics中的元素复制到新歌曲数组newMusics中
            for(int i = 0; i < musics.length; i++){
                newMusics[i] = musics[i];
            }
            //输入歌曲名称
            Scanner input = new Scanner(System.in);
            System.out.print("\n请输入歌曲名称:");
            music = input.nextLine();
    
            //找到新元素的插入位置
            for(int i = 0; i < musics.length; i++){
                if(musics[i].compareToIgnoreCase(music) > 0){
                    index = i;
                    break;
                }
            }
    
            //元素后移
            for(int i = newMusics.length-1; i > index; i--){
                newMusics[i] = newMusics[i-1];    
                //index下标开始的元素后移一个位置
            }
            newMusics[index] = music;            
            //新元素放在index的位置
            
            //输出插入后的结果
            System.out.print("插入后的数组为:");
            for(int i = 0; i < newMusics.length; i++){
                System.out.print(newMusics[i]+"  ");
            }
    
    
        }
    
    }
    

    我们来看看效果 

     

     

     分析

    先看看我们开始
    我们定义了两个数组!

    String[] musics = new String[]{"Island","Ocean","Pretty","Sun"};
    

    这是第一个数组,它的作用是储存4个歌曲的名称,这是一个静态(不可改变)的数组值,无法扩充它的储存空间,所以我们需要再定义一个动态数组空间 定义一个动态数组:

    String[] newMusics = new String[musics.length+1];
    

    这个数组的长度是 [musics.length+1] ,数组名+length 是获取数组的长度,我们的第二个数组里面需要多一个空间来保存插入的数值,所以需要原来的musics这个数组的长度 +1

    好了,我们已经将两个数组定义好了

    定义变量

    下一步,我们定义一个空值,来保存要插入的歌名

    String music;
    

    然后我们用定义一个int数值,来储存要插入歌曲插入的位置(下标)

    int index = musics.length;
    

    输出之前数组

    我们输出一次没插入歌曲前的数组

    System.out.print("插入前的数组为:");
    for(int i = 0; i < musics.length ; i++){
        System.out.print(musics[i]+"  ");
    }
    

    我们的静态数组是不可扩充的,我们利用循环来将原来的数组 musics[] 搬运到 newMusics[] ,因为原来的数组只有4个String值,而我们新的数组有5个空间,将数组搬运到新数组后我们就空余一个空间,用于放插入空间

        //将数组musics中的元素复制到新歌曲数组newMusics中
                for(int i = 0; i < musics.length; i++){
                    newMusics[i] = musics[i];
                }
    

    输入要插入的歌名

    现在,很多人觉得我们应该要将歌名插入数组了,可是,歌名从哪来?

    这里就应该要用到Scanner了,让用户从控制台输入一个歌名

        //输入歌曲名称
        Scanner input = new Scanner(System.in);
        System.out.print("\n请输入歌曲名称:");
        music = input.nextLine();
    

    找到插入位置

    找到插入位置与数组中的插入字符原理一样,不懂可以看看这一篇文章:

    跳转链接:Java中如何在数组中插入一个字符 - 小简博客 (janyork.com)icon-default.png?t=L9C2https://blog.janyork.com/index.php/archives/414/

    我们先前定义了一个 index 来储存插入位置,我们用循环将位置(下标)找到并赋值给index

     //找到新元素的插入位置
        for(int i = 0; i < musics.length; i++){
            if(musics[i].compareToIgnoreCase(music) > 0){
                index = i;
                break;
            }
        }
    

    利用这个方法比较String值,找出要插入位置下标

    数组值后移

    找到插入的位置后,此时,这个位置是存在可用数值的,我们在插入字符串前,需要将插入位置(index)后面的数后移

                 //元素后移
                for(int i = newMusics.length-1; i > index; i--){
                    newMusics[i] = newMusics[i-1];    
                    //index下标开始的元素后移一个位置
                }
    

    这里这个(int i = newMusics.length-1)是什么,可能许多人有疑问,这个就是 数组长短-1 ,也就是数组下标长度,我们从最后一个下标开始,index(插入位置)后面的数组值都往后移动一个空间,给要插入的歌曲腾出一个位置

    好了,此时就可以说是万事俱备只欠东风了

    插入字符串

    现在,我们将空出的位置赋值

    将music(要插入的音乐)赋值个数组中的index下标(数组空出位置)

    newMusics[index] = music; 
    

    重新输出数组

                System.out.print("插入后的数组为:");
                for(int i = 0; i < newMusics.length; i++){
                    System.out.print(newMusics[i]+"  ");
                }
    

    如果还是有不懂,可以自己结合代码,运行分析,或者联系我,还有其他字符串排序方法,我单独一篇文章总结

    展开全文
  • java中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法(希尔排序(Shell Sort)是插入排序的一种),下面是一些示例,需要的朋友可以参考下
  • java数组如何排序

    千次阅读 2021-02-12 09:53:22
    java中几种数组排序方法:1、使用Arrays.sort()排序Arrays.sort()排序方法在java中是最简单且最常用的排序方法。int []arr1= {45,34,59,55};Arrays.sort(arr1);//调用方法排序即可Arrays.sort()的使用主要分为对...

    7a13cf6e2d87545302970c8d2859c016.png

    java中几种数组排序的方法:

    1、使用Arrays.sort()排序

    Arrays.sort()排序方法在java中是最简单且最常用的排序方法。int []arr1= {45,34,59,55};

    Arrays.sort(arr1);//调用方法排序即可

    Arrays.sort()的使用主要分为对基本数据类型数组的排序和对对象数组的排序。

    2、冒泡排序

    简单来说,冒泡排序就是重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。//array[]为待排序数组,n为数组长度

    void BubbleSort(int array[], int n)

    {

    int i, j, k;

    for(i=0; i

    for(j=0; j

    {

    if(array[j]>array[j+1])

    {

    k=array[j];

    array[j]=array[j+1];

    array[j+1]=k;

    }

    }

    }

    3、选择排序

    先找到最小元素所在位置的索引,然后将该元素与第一位上的元素进行交换。int arr3[]= {23,12,48,56,45};

    for(int i=0;i

    int tem=i;

    //将数组中从i开始的最小的元素所在位置的索引赋值给tem

    for(int j=i;j

    if(arr3[j]

    tem=j;

    }

    }

    //上面获取了数组中从i开始的最小值的位置索引为tem,利用该索引将第i位上的元素与其进行交换

    int temp1=arr3[i];

    arr3[i]=arr3[tem];

    arr3[tem]=temp1;

    }

    4、反转排序

    将原数组按逆序排列//将数组第i位上的元素与第arr.length-i-1位上的元素进行交换

    int []arr4={23,12,48,56,45};

    for(int i=0;i

    int tp=arr4[i];

    arr4[i]=arr4[arr4.length-i-1];

    arr4[arr4.length-i-1]=tp;

    }

    5、直接插入排序int []arr5={23,12,48,56,45};

    for (int i = 1; i < arr5.length; i++) {

    for (int j = i; j > 0; j--) {

    if (arr5[j - 1] > arr5[j]) {//大的放后面

    int tmp = arr5[j - 1];

    arr5[j - 1] = arr5[j];

    arr5[j] = tmp;

    }

    }

    }

    更多java知识请关注java基础教程栏目。

    展开全文
  • Java实现数组排序

    千次阅读 2020-12-01 10:31:45
    选择排序法即是先将第一个数据分别与右侧其他数据依次比较,当第一个数据较大时,对调两数据位置,最终第一个位置的数据将是数组元素的最小值;再对第二个数据分别与右侧其他数据依次比较,当第二个数据较大时,对调...
  • 主要介绍了Java中数组排序方式(快速排序、冒泡排序、选择排序),需要的朋友可以参考下
  • 小编典典你有两种方法可以使用Arrays...对象所属的类实现Comparable接口,并将数组传递给仅采用一个参数的sort方法。例class Book implements Comparable {public String name, id, author, publisher;public...
  • JAVA数组中五种常见排序方法

    万次阅读 多人点赞 2018-08-14 11:30:56
    几种常用的JAVA数组排序方法的整合。 法一:Arrays.sort() Arrays.sort()排序方法在java是最简单且最常用的排序方法 int []arr1= {45,34,59,55}; Arrays.sort(arr1);//调用方法排序即可 法二:冒泡排序 ...
  • Java中Arrays类实际是一个实现对数组操作的各种方法的类,可以实现对数组排序和搜索,数组的比较和对数组增加元素,数组的拷贝和数据转换为字符串的功能。今天我们就来说说Arrays.sort()对数组进行排序的规则。1....
  • 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数组排序输出

    2021-11-20 09:57:54
    问题:编写一个程序,其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后排序(升序)后输出 代码: package com.company; import java.util.Scanner; public class Main { public static void ...
  • import java.lang.*;import java.util.*;public class Main {public static void main(String args[]) {int a[] = new int[]{1, 4, 612, 333, -8, 2, -12, 4534, 0};for (int i = 0; i < a.length; i++) { //直接...
  • 在Java中对字符串数组进行排序

    千次阅读 2021-02-12 10:48:49
    他们可以将字符串添加到数组中,从数组中删除字符串,在数组中搜索字符串,最终他们将能够对数组进行排序排序使我很困惑。我尝试了几种不同的方法。第一种方法是数组转换为ArrayList并使用Collections对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 386,765
精华内容 154,706
关键字:

在java中数组排序的方法是什么

java 订阅