当前位置:   article > 正文

JAVA中的sort排序_java sort 排序

java sort 排序

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

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

  1. package test;
  2. import java.util.*;
  3. public class main
  4. {
  5. public static void main(String args[])
  6. {
  7. Scanner cin=new Scanner(System.in);
  8. int a[];
  9. int i;
  10. a=new int[5];
  11. for (i=0;i<=4;i++)
  12. {
  13. a[i]=cin.nextInt();
  14. }
  15. Arrays.sort(a);
  16. for (i=0;i<=4;i++)
  17. {
  18. System.out.println(a[i]+" ");
  19. }
  20. }
  21. }

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

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

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

  1. package test;
  2. import java.util.*;
  3. class Mycomparator implements Comparator<Integer>
  4. {
  5. public int compare(Integer a,Integer b)
  6. {
  7. if (a>b)
  8. {
  9. return -1;
  10. }
  11. else if (a<b)
  12. {
  13. return 1;
  14. }
  15. return 0;
  16. }
  17. }
  18. public class main
  19. {
  20. public static void main(String args[])
  21. {
  22. Scanner cin=new Scanner(System.in);
  23. int a[];
  24. Integer b[];
  25. int i;
  26. a=new int[5];
  27. b=new Integer[5];
  28. for (i=0;i<=4;i++)
  29. {
  30. a[i]=cin.nextInt();
  31. b[i]=new Integer(a[i]);
  32. }
  33. Comparator<Integer> cmp=new Mycomparator();
  34. Arrays.sort(b,cmp);
  35. for (i=0;i<=4;i++)
  36. {
  37. System.out.println(b[i].intValue()+" ");
  38. }
  39. }
  40. }

3.类排序。

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

  1. package test;
  2. import java.util.*;
  3. class point
  4. {
  5. int x,y;
  6. public String toString()
  7. {
  8. return "x="+x+" "+"y="+y;
  9. }
  10. }
  11. class pointComparator implements Comparator<point>
  12. {
  13. public int compare(point a,point b)
  14. {
  15. if (a.x>b.x)
  16. {
  17. return 1;
  18. }
  19. else if (a.x<b.x)
  20. {
  21. return -1;
  22. }
  23. else
  24. {
  25. if (a.y>b.y)
  26. {
  27. return 1;
  28. }
  29. else if (a.y<b.y)
  30. {
  31. return -1;
  32. }
  33. }
  34. return 0;
  35. }
  36. }
  37. public class main
  38. {
  39. public static void main (String[] args)
  40. {
  41. Scanner cin=new Scanner(System.in);
  42. int i,b;
  43. point a[]=new point[5];
  44. for (i=0;i<=4;i++)
  45. {
  46. a[i]=new point();
  47. a[i].x=cin.nextInt();
  48. a[i].y=cin.nextInt();
  49. }
  50. Comparator<point> cmp=new pointComparator();
  51. Arrays.sort(a,cmp);
  52. for (i=0;i<=4;i++)
  53. {
  54. System.out.println(a[i]);
  55. }
  56. }
  57. }


4.区间排序

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号