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)


相关推荐

发表回复

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

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