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)
上一篇 2022年8月12日 下午4:36
下一篇 2022年8月12日 下午4:36


相关推荐

  • 电阻器的识别与测量答案_电阻器的判断

    电阻器的识别与测量答案_电阻器的判断原文地址:电阻器的识别与测量作者:绵绵小溪2011年9月14日                                                                     第3周第7,8课时课  题电阻器的识别与测量教学目标知识目标:1)让学生理解色标法、直标法的含义;         2)让学生了解数字万用表测

    2022年8月21日
    8
  • 保姆级教程:用GLM-4v-9b快速搭建智能图片问答系统

    保姆级教程:用GLM-4v-9b快速搭建智能图片问答系统

    2026年3月12日
    2
  • 手游海外推广策略整理 让你不再毫无头绪

    手游海外推广策略整理 让你不再毫无头绪在海外市场上手游五大阶段需要的推广你知多少 摘要 在国内游戏行业迅猛发展的背景下 手游出海已经常态化 那么在海外市场 手游从上架前到家喻户晓的五大阶段你达到哪一步了 如何做才能让手游众所周知 据 2015 年中国游戏产业报告 显示 2015 年移动游戏收入远远超越页游达到 514 6 亿人民币 其中中国自主研发网络游戏海外出口实际销售收入达到 53 1 亿美元 同比增长 72 4 在 2016 年 这些数

    2026年3月26日
    2
  • vue父子组件传值 简单了解vuex

    vue父子组件传值 简单了解vuex一、vue的父子组件之间是如何传值的?首先呢,需要说说的是,vue既然有双向绑定,那为何会有父子组件之间的传值问题?这个问题也简单,vue的组件会供其他的vue页面进行调用,如果数组都是双向绑定的话,那么就容易混乱了,比如a,b页面绑了一个num=10,那b,c页面又绑了num=5,那vue实例的num到底听谁的?所以,这就是vue官网为什么说组件之间的数据只能是单项流通的,而且由父组件传递给…

    2022年5月16日
    96
  • SuRF: 一个优化的 Fast Succinct Tries

    SuRF: 一个优化的 Fast Succinct Tries

    2022年4月3日
    48
  • python中的encode()和decode()函数

    python中的encode()和decode()函数对于很多人来说,python的中字符转码是一件很头疼的事情,本来期望结果输出的是中文,结果来一段像这样\xe4\xbd\xa0\xe5\xa5\xbd像是乱码的字符串。由于学python没多久,昨天使用python的时候,就遇到这种问题,现在来深入研究下与之相关的encode()和decode()函数,和如何把如乱码般的字符串转成中文。encode()和decode()都是字符串的函数,可直接查看关

    2022年10月7日
    7

发表回复

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

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