java中的sort排序算法_vba中sort按某列排序

java中的sort排序算法_vba中sort按某列排序C++中提供了sort函数,可以让程序员轻松地调用排序算法,JAVA中也有相应的函数。1.基本元素排序:Array.sort(排序数组名)packagetest;importjava.util.*;publicclassmain{ publicstaticvoidmain(Stringargs[]) { Scannercin=newScanner(Sys

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

C++中提供了sort函数,可以让程序员轻松地调用排序算法,JAVA中也有相应的函数。

1.基本元素排序:Array.sort(排序数组名)

package test;
import java.util.*;

public class main
{
	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);
		int a[];
		int i;
		a=new int[5];
		for (i=0;i<=4;i++)
		{
			a[i]=cin.nextInt();
		}
		Arrays.sort(a);
		for (i=0;i<=4;i++)
		{
			System.out.println(a[i]+" ");
		}
	}
}

2.基本元素从大到小排序:

由于要用到sort中的第二个参数,这个参数是一个类,所以应该用Integer,而不是int。可以使用Interger.intvalue()获得其中int的值

下面a是int型数组,b是Interger型的数组,a拷贝到b中,方便从大到小排序。capare中返回值是1表示需要交换。

package test;
import java.util.*;

class Mycomparator implements Comparator<Integer>
{
	public int compare(Integer a,Integer b)
	{
		if (a>b)
		{
			return -1;
		}
		else if (a<b)
		{
			return 1;
		}
		return 0;
	}
}

public class main
{
	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);
		int a[];
		Integer b[];
		int i;
		a=new int[5];
		b=new Integer[5];
		for (i=0;i<=4;i++)
		{
			a[i]=cin.nextInt();
			b[i]=new Integer(a[i]);
		}
		Comparator<Integer> cmp=new Mycomparator();
		Arrays.sort(b,cmp);
		for (i=0;i<=4;i++)
		{
			System.out.println(b[i].intValue()+" ");
		}
	}
}

3.类排序。

和2差不多,都是重载比较器,以下程序实现了点的排序,其中x小的拍前面,x一样时y小的排前面

package test;
import java.util.*;

class point 
{
	int x,y;
	public String toString()
	{
		return "x="+x+" "+"y="+y;
	}
}

class pointComparator implements Comparator<point>
{
	public int compare(point a,point b)
	{
		if (a.x>b.x)
		{
			return 1;
		}
		else if (a.x<b.x)
		{
			return -1;
		}
		else
		{
			if (a.y>b.y)
			{
				return 1;
			}
			else if (a.y<b.y)
			{
				return -1;
			}
		}
		return 0;
	}
}

public class main
{
	public static void main (String[] args)
	{
		Scanner cin=new Scanner(System.in);
		int i,b;
		point a[]=new point[5];
		for (i=0;i<=4;i++)
		{
			a[i]=new point();
			a[i].x=cin.nextInt();
			a[i].y=cin.nextInt();
		}
		Comparator<point> cmp=new pointComparator();
		Arrays.sort(a,cmp);
		for (i=0;i<=4;i++)
		{
			System.out.println(a[i]);
		}
	}
}

4.区间排序

如果只希望对数组中的一个区间进行排序,那么就用到sort中的第二个和第三个参数sort(a,p1,p2,cmp),表示对a数组的[p1,p2)(注意左闭右开)部分按cmp规则进行排序

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169881.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java中数组怎么定义_java中数组的定义

    java中数组怎么定义_java中数组的定义展开全部数组的定义语法有两种:typearrayName[];type[]arrayName;type为Java中的任意数据类62616964757a686964616fe58685e5aeb931333365646364型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[]指明该变量是一个数组类型变量。/***数组的三种定义方法**1.数组类型[]数…

  • golang json 转map

    golang json 转map//convertjsontomappackagemainimport(“fmt””encoding/json”)funcmain(){b:=[]byte(`{“IP”:”192.168.11.22″,”name”:”SKY”}`)m:=make(map[string]string)err:=json.Unmarsha

  • 文件操作(File类等)API摘要[通俗易懂]

    文件操作(File类等)API摘要[通俗易懂]Console此类包含多个方法,可访问与当前Java虚拟机关联的基于字符的控制台设备(如果有)。虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,并且通常连接到键盘并从虚拟机启动的地方显示。如果虚拟机是自动启动的(例如,由后台作业调度程序启动),那么它通常没有控制台。如果此虚拟机具

  • java培训学费_北京Java培训班学费很贵吗,包含了哪些收费项目

    java培训学费_北京Java培训班学费很贵吗,包含了哪些收费项目原标题:北京Java培训班学费很贵吗,包含了哪些收费项目北京的Java培训班有很多,价格却是相差不多的,但培训的课程就参差不齐了,有的培训班就是为了赚钱而存在的,想要系统的学习Java,确保学习效果,那么你一定要挑选正规的Java培训班,挑选适合自己的Java课程,培训费用可以在和机构老师详谈。我们先来看看Java培训机构的收费情况,学费都包含了哪些呢?专业的Java培训在硬件设施上,在师资力量上…

  • 一个字节多少位,一个字多少位怎么算_一个数字占几个位

    一个字节多少位,一个字多少位怎么算_一个数字占几个位一个字节=一个byte=8位一个字=两个byte=16位,java中:byte=8位short=2byte=16位int=4byte=32位long=8byte=64位float=4byte=32位double=8byte=64位char=4byte=32位string=可占用Integer.MAX_VA…

  • C语言根据经纬度计算距离[通俗易懂]

    C语言根据经纬度计算距离[通俗易懂]#include#defineEARTH_RADIUS6378.137//地球半径#definePI3.14159265358979323846//Ô²ÖÜÂÊ//½Ç¶Èת»¯Îª»¡¶Èstaticdoublerad(doubled){  returnd*PI/180.0;}//µ±Äϱ±

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号