java 数组排序_Java Arrays类进行数组排序_大师的菜的博客-程序员宅基地

技术标签: java 数组排序  

排序算法,基本的高级语言都有一些提供。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  对指定 int 型数组的指定范围按数字升序进行排序。

代码实例:

importjava.util.Arrays;public classArraysSort_11 {public static voidmain(String args[])

{int[] a={1,4,-1,5,0};

Arrays.sort(a);//数组a[]的内容变为{-1,0,1,4,5}

for(int i=0;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)  根据指定比较器产生的顺序对指定对象数组的指定范围进行排序。

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

代码实例:

packageaa;importjava.util.Arrays;importjava.util.Comparator;public classArraysort {

Point[] arr;

Arraysort(){

arr=new Point[4]; //定义对象数组arr,并分配存储的空间

for(int i=0;i<4;i++)

arr[i]=newPoint();

}public static voidmain(String[] args) {

Arraysort sort=newArraysort();

sort.arr[0].x=2;sort.arr[0].y=1; //初始化,对象数组中的数据

sort.arr[1].x=2;sort.arr[1].y=2;

sort.arr[2].x=1;sort.arr[2].y=2;

sort.arr[3].x=0;sort.arr[3].y=1;

Arrays.sort(sort.arr,new MyComprator()); //使用指定的排序器,进行排序

for(int i=0;i<4;i++) //输出排序结果

System.out.println("("+sort.arr[i].x+","+sort.arr[i].y+")");

}

}classPoint{intx;inty;

}//比较器,x坐标从小到大排序;x相同时,按照y从小到大排序

class MyComprator implementsComparator {public intcompare(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;

}

}

执行输出:

7b7ca01274d81e7eb5d2c3de88d5421f.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30624835/article/details/114023922

智能推荐

games101:四,着色频率、纹理贴图(放大插值、缩小mipmap)+ 作业3_我要吐泡泡了哦的博客-程序员宅基地

game101:四,着色频率、纹理贴图(放大插值、缩小mipmap)一,着色频率1,Flat Shading----逐三角形2,Gouraud Shading----逐顶点3,Phong Shading----逐像素3.1重心坐标3.2透视矫正插值(Perspective-Correct Interpolation)3.3模型变换中的法线向量二,纹理贴图1,小纹理放大----双线性插值2,大纹理缩小----mipmapmipmap----快速的、近似的、方形的范围查询三线性插值ripmap----各向异性

sublime linux中文乱码问题,解决Sublime Text3 在Linux下中文乱码以及无法输入中文_weixin_39924307的博客-程序员宅基地

解决中文乱码下载 Package Control 放至 Installed Packages 文件夹中,或者通过官网中的代码安装。下图演示如何找到 Installed Packages 和Packages 文件夹。directory.gif安装完 Package Control 后,按下快捷键Ctrl+Shift+p 输入install package选择然后输入ConvertToUTF8下载它...

在刚刚结束的ACL 2019上,知识图谱领域都发生了哪些大事?_Necther的博客-程序员宅基地

选自medium,作者:Michael Galkin,机器之心编译,参与:李志伟、Geek AI。大家好,ACL 2019 刚刚结束,我在风景如画的佛罗伦萨参加了为期一周的讲座,教程和研讨会!在本文中,我将回顾一下知识图谱如何步步为营地融入 NLP 研究社区。ACL 2019 盛况空前,研究者们向本届大会提交了 2900 份论文,其中的 660 份论文被接受,大会共有 3000 多名注册参会者,并设有 4 个研讨会,约 400 名与会者参与到这些研讨会中(研讨会规模比一些国际计算机科学会议还大)

Directx11之Debug DirectCompute_将数据从GPU读到CPU_batilei的博客-程序员宅基地

在Directx11中采用DirectCompute进行GPU并行的数值计算,或者Debug DirectCompute的程序,一个最典型的问题就是将GPU中的计算结果读出来到CPU让我们也可以看结果是否正确。  首先讲由于Directx11中用来存储结果的subresour

随便推点

mysql 连接错误 2058 Plugin caching_sha2_password could not be loaded_雪雨听风的博客-程序员宅基地

mysql 连接错误 2058 Plugin caching_sha2_password could not be loaded1、修改密码过期ALTER USER'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;2、重新修改密码ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';3、刷新权限(不做可能无法生效)FLUSH PRIVILE

c语言中的下标,c语言中数组的下标从什么入手下手?_后端开发_PCIM Asia的博客-程序员宅基地

c言语中数组的下标从0入手下手。由于假如数组元素下标从1入手下手,每次盘算地点时,须要多做一次减法操纵。所以,为了进步效力,C言语数组元素下标从0入手下手。 c言语中数组的下标从0入手下手。数组中的各元素的存储是有先后次序的,它们在内存中根据这个先后次序一连寄存在一起。数组元素用全部数组的名字和它本身在数组中的次序位置来示意。比方:a[0]就示意名字为a的数组中的第一个元素。那末,C言语中数组的元...

基于事件驱动机制,在Service Mesh中进行消息传递的探讨_BoCloud博云的博客-程序员宅基地

翻译 | 宋松原文 |https://www.infoq.com/articles/service-mesh-event-driven-messaging关键点 当前流行的Service Mesh实现(Istio,Linkerd,Consul Connect等)仅满足微服务之间的请求 - 响应式同步通信。 为了推进和采用Service Mesh,我们认为支持事件驱动...

读取文件转存到数组的工具类_如花。的博客-程序员宅基地

package ctpdemo;import java.io.*;import java.util.ArrayList;import java.util.List;import static com.sun.org.apache.bcel.internal.classfile.Utility.printArray;public class FileUtis { public...

cssNode_念言-ny的博客-程序员宅基地_css node

文章目录css1、组成部分:2、css代码风格2--1、样式格式2--2、样式大小写风格2--3、样式空格风格3、css的基础选择器3--1、选择器的作用3--2、选择器的分类1】、基础选择器1、标签选择器:2、类选择器:3、id选择器:4、通配选择器5、总结 ![image-20210706101847142](https://img-blog.csdnimg.cn/img_convert/5d411c6d35de5844a7ab1830681d4a09.png)2】复合选择器2--1】、后代选择器2--

C语言之三天打鱼,两天晒网_路长梦远的博客-程序员宅基地

一、题目名称:“三天打鱼,两天晒网”二、内容要求:中国有句俗语叫“三天打鱼,两天晒网”。某人从2010年1月1日起开始“三天打鱼,两天晒网”,问:这个人在以后的某一天中是“打鱼”还是“晒网”。(用C或C++语言/java/python实现程序解决问题)三、算法设计:...

推荐文章

热门文章

相关标签