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规则进行排序

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • uva-211-The Domino Effect

    uva-211-The Domino Effect

    2022年1月21日
    41
  • Windows编译ollvm_windows交叉编译linux

    Windows编译ollvm_windows交叉编译linux听过Mozilla(火狐浏览器的娘家)的javascript引擎吗?感兴趣吗?想在windows平台的应用开发中使用这个引擎吗?肯定?好,往下看!本文给出Windows平台SpiderMonkey的32位和64位静态库编译方法 WINDOWS-SpiderMonkey32位Release静态库,开心吧?网上2017年以前的例子,你不一定能编译的过

    2022年10月17日
    4
  • Java二叉树前序遍历[通俗易懂]

    Java二叉树前序遍历[通俗易懂]给你二叉树的根节点root,返回它节点值的前序遍历。示例1:输入:root=[1,null,2,3]输出:[1,2,3]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]示例4:输入:root=[1,2]输出:[1,2]示例5:输入:root=[1,null,2]输出:[1,2]提示:树中节点数目在范围[0,100]内-100<=Node.val<=100进阶:递归算法很简单

    2025年9月23日
    4
  • 网学天地考研资料分享_零极区块链怎么赚钱

    网学天地考研资料分享_零极区块链怎么赚钱孤荷凌寒自学第189天区块链103天Dapp058【主要内容】今天继续学习实战,终于完全实现一个波菜类的猜大小的智能合约,并开始准备了解erc721合约标准。共耗时26分钟。(此外整理作笔记花费

    2022年8月5日
    7
  • STL vector使用方法介绍

    STL vector使用方法介绍

    2021年12月6日
    42
  • Spring Boot 中使用 @Transactional 注解配置事务管理

    Spring Boot 中使用 @Transactional 注解配置事务管理事务管理是应用系统开发中必不可少的一部分。Spring为事务管理提供了丰富的功能支持。Spring事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染,因此在实际使用中声明式事务用的比较多。

    2022年6月6日
    111

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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