Java sort(关于Java中Array.sort()排序原理,越详细越好!)

2024-09-21 21:50:47 :1

java sort(关于Java中Array.sort()排序原理,越详细越好!)

大家好,如果您还对java sort不太了解,没有关系,今天就由本站为大家分享java sort的知识,包括关于Java中Array.sort()排序原理,越详细越好!的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

关于Java中Array.sort()排序原理,越详细越好!

是 Arrays.sort(a); 吧

给你看源码

=============

/*      */   public static void sort(int paramArrayOfInt)/*      */   {/*   96 */     sort1(paramArrayOfInt, 0, paramArrayOfInt.length);/*      */   }///*      */   private static void sort1(int paramArrayOfInt, int paramInt1, int paramInt2)/*      */   {/*  558 */     if (paramInt2 《 7) {/*  559 */       for (i = paramInt1; i 《 paramInt2 + paramInt1; i++)/*  560 */         for (j = i; (j 》 paramInt1) && (paramArrayOfInt); j--)/*  561 */           swap(paramArrayOfInt, j, j - 1);/*  562 */       return;/*      */     }/*      */     /*      */ /*  566 */     int i = paramInt1 + (paramInt2 》》 1);/*  567 */     if (paramInt2 》 7) {/*  568 */       j = paramInt1;/*  569 */       k = paramInt1 + paramInt2 - 1;/*  570 */       if (paramInt2 》 40) {/*  571 */         m = paramInt2 / 8;/*  572 */         j = med3(paramArrayOfInt, j, j + m, j + 2 * m);/*  573 */         i = med3(paramArrayOfInt, i - m, i, i + m);/*  574 */         k = med3(paramArrayOfInt, k - 2 * m, k - m, k);/*      */       }/*  576 */       i = med3(paramArrayOfInt, j, i, k);/*      */     }/*  578 */     int j = paramArrayOfInt;/*      */     /*      */ /*  581 */     int k = paramInt1;int m = k;int n = paramInt1 + paramInt2 - 1;int i1 = n;/*      */     for (;;) {/*  583 */       if ((m 《= n) && (paramArrayOfInt 《= j)) {/*  584 */         if (paramArrayOfInt == j)/*  585 */           swap(paramArrayOfInt, k++, m);/*  586 */         m++;/*      */       } else {/*  588 */         while ((n 》= m) && (paramArrayOfInt 》= j)) {/*  589 */           if (paramArrayOfInt == j)/*  590 */             swap(paramArrayOfInt, n, i1--);/*  591 */           n--;/*      */         }/*  593 */         if (m 》 n)/*      */           break;/*  595 */         swap(paramArrayOfInt, m++, n--);/*      */       }/*      */     }/*      */     /*  599 */     int i3 = paramInt1 + paramInt2;/*  600 */     int i2 = Math.min(k - paramInt1, m - k);vecswap(paramArrayOfInt, paramInt1, m - i2, i2);/*  601 */     i2 = Math.min(i1 - n, i3 - i1 - 1);vecswap(paramArrayOfInt, m, i3 - i2, i2);/*      */     /*      */ /*  604 */     if ((i2 = m - k) 》 1)/*  605 */       sort1(paramArrayOfInt, paramInt1, i2);/*  606 */     if ((i2 = i1 - n) 》 1) {/*  607 */       sort1(paramArrayOfInt, i3 - i2, i2);/*      */     }/*      */   }/*      */   /*      */ /*      */   private static void swap(int paramArrayOfInt, int paramInt1, int paramInt2)/*      */   {/*  614 */     int i = paramArrayOfInt;/*  615 */     paramArrayOfInt;/*  616 */     paramArrayOfInt = i;/*      */   }

java中.sort()是什么意思排序吗,按什么顺序排的

是的 默认是按字典升序排序简单的说很像新华字典 里面的排序a》b》c....abc》acb..bag 》bga...这里的大于号 意思是排在前面希望对你有帮助

java中调用sort 使学生成绩由小到大排序 代码怎么写

根据你这要求,只有一个办法,但是有点约束:import java.util.Arrays;import java.util.Collections;public class Test { public static void main(String args) { //注意,只能用对象类型,不可以使用简单类型 如int num则报错 Integer num = {5,8,3,9,1}; //如果是num是List或 Set,则用Collections.sort(num,Collections.reverseOrder()); Arrays.sort(num,Collections.reverseOrder()); for(int i=0;i《num.length;i++){ System.out.println(num); } }}

Java:使用sort方法对整个数组或部分数组进行排序的问题

额,他只是为了让你明白sort(char,1,3)是从第1个开始,到第3个(但是不包括第3个)的字符进行排序。

JAVA中如何使用SORT从大到小排.

在排序中,最重要的是自己实现自己的比较的行数,即是implements Comparator实现方法public int compare(Object o1, Object o2) 最为重要..举个例子:package book.arrayset;import java.util.Comparator;/** * 整数比较器,将整数按降序排列 */class MyIntComparator implements Comparator{/** * o1比o2大,返回-1;o1比o2小,返回1。 */public int compare(Object o1, Object o2) {int i1 = ((Integer)o1).intValue();int i2 = ((Integer)o2).intValue();if (i1 《 i2){return 1;}if (i1 》 i2){return -1;}return 0;}}//上面的为比较的函数实现,下面真正的添加数据,//通过调用上面的比较函数实现自定义排序的功能package book.arrayset;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * 对List中的元素排序 */public class SortList { public static void output(List list){if (list == null){return;}for (int i=0; i《list.size(); i++){System.out.print(list.get(i).toString() + " ");}System.out.println();} public static void main(String args) {List list = new ArrayList();list.add(new Integer(5));list.add(new Integer(8));list.add(new Integer(1));list.add(new Integer(3));list.add(new Integer(2));list.add(new Double(3.1));System.out.println("list开始状态");SortList.output(list);//Collections.sort方法将用默认比较器排列list的元素Collections.sort(list);System.out.println("list被默认比较器排序后的状态");SortList.output(list);//下面将list的元素按降序排列Collections.sort(list, new MyIntComparator());System.out.println("list被自定义比较器排序后的状态");SortList.output(list); //因此,对于任意自定义类的对象,当保存在集合类容器中后,如果需要对它们进行排序,//需要自己提供适应于自定义类的比较器,自定义比较器必须实现Comparator接口。//然后采用Collections.sort(list, comparator);方法对容器进行排序。}}

关于java sort,关于Java中Array.sort()排序原理,越详细越好!的介绍到此结束,希望对大家有所帮助。

java sort(关于Java中Array.sort()排序原理,越详细越好!)

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.