1. 程式人生 > >java中Arrays.sort使用的是什麼演算法

java中Arrays.sort使用的是什麼演算法

java中Arrays.sort使用了兩種排序方法,快速排序和優化的合併排序。

快速排序主要是對哪些基本型別資料(int,short,long等)排序, 而合併排序用於對物件型別進行排序。
使用不同型別的排序演算法主要是由於快速排序是不穩定的,而合併排序是穩定的。這裡的穩定是指比較相等的資料在排序之後仍然按照排序之前的前後順序排列。對於基本資料型別,穩定性沒有意義,而對於物件型別,穩定性是比較重要的,因為物件相等的判斷可能只是判斷關鍵屬性,最好保持相等物件的非關鍵屬性的順序與排序前一直;另外一個原因是由於合併排序相對而言比較次數比快速排序少,移動(物件引用的移動)次數比快速排序多,而對於物件來說,比較一般比移動耗時。
補充一點合併排序的時間複雜度是n*logn, 快速排序的平均時間複雜度也是n*logn,但是合併排序的需要額外的n個引用的空間

相關推薦

javaArrays.sort使用的是什麼演算法

java中Arrays.sort使用了兩種排序方法,快速排序和優化的合併排序。快速排序主要是對哪些基本型別資料(int,short,long等)排序, 而合併排序用於對物件型別進行排序。使用不同型別的排序演算法主要是由於快速排序是不穩定的,而合併排序是穩定的。這裡的穩定是指比

關於javaArrays.sort()的幾種用法

今天看到了Arrays了(覺得自己學東西真是龜速啊),Arrays裡面有一個sort是針對陣列排序的。。。然後就看了看它的簡單用法 同樣轉載(我不生產程式碼,我只是程式碼的搬運工.....):http://www.tuicool.com/articles/iii6N3   

JavaArrays.sort()自定義陣列的升序和降序排序

Java學習中會遇到對陣列進行升序或者降序排序的問題 Java語言提供給我們Array.sort(int [] arr)對陣列進行升序排列 import java.util.Arrays; public class Test1 { public stat

JAVAArrays.sort()使用兩種方式(Comparable和Comparator介面)對物件或者引用進行排序

package com.dt.Sort; import java.util.Arrays; import java.util.Comparator; /**  * 使用Comparator介面:編寫多個排序方式類實現Comparator介面,並重寫新Comparator介面中的compare()方法 pub

Java的經典演算法之氣泡排序(Bubble Sort)

原理:比較兩個相鄰的元素,將值大的元素交換至右端。 思路:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全部排序完成

javaCollections.sort排序詳解

比較器 元素 .net 字符 atp style pri com 實現接口 Comparator是個接口,可重寫compare()及equals()這兩個方法,用於比價功能;如果是null的話,就是使用元素的默認順序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f

javaArrays,binarySearch()方法的返回值問題

.cn pac rom 第一個 mage sea div arch x11 最近在復習Java知識,發現果然不經常使用忘得非常快。。。 看到binarySearch()方法的使用時,發現書上有點錯誤,於是就自己上機實驗了一下,最後總結一下該方法的返回值。 總結:bina

JavaArrays.toString ()列印二維陣列及Array陣列的常用操作

1.Java中Arrays.toString () 已知列印一維陣列的API為System.out.println ( Arrays.toString ();,其引數為陣列名或陣列指標,其支援的資料型別有很多,如:int[]、char[]、byte[]等。 import java

Java的經典演算法之選擇排序(SelectionSort)

Java中的經典演算法之選擇排序(SelectionSort) 神話丿小王子的部落格主頁 a) 原理:每一趟從待排序的記錄中選出最小的元素,順序放在已排好序的序列最後,直到全部記錄排序完畢。也就是:每一趟在n-i+1(i=1,2,…n-1)個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。基

JavaArray.sort()的幾種用法[轉]

轉自: http://www.cnblogs.com/IT-sky/p/3749859.html?utm_source=tuicool&utm_medium=referral void java.util.Arrays.sort(int[] a, int fromIn

javaSort函式,你值得看

基於C語言中的sort如此這麼方便,自然而然,java中也有類似C的sort函式。 1.普通陣列:Arrays.sort(陣列名,開始位置,結束位置)。 2.類中屬性排序:   模板: class A {   int n; } class cmp implement Comparator<A> {

JavaCollections.sort()的使用

在日常開發中,很多時候都需要對一些資料進行排序的操作。然而那些資料一般都是放在一個集合中如:Map ,Set ,List 等集合中。他們都提共了一個排序方法 sort(),要對資料排序直接使用這個方法就行,但是要保證集合中的物件是 可比較的。 怎麼讓一個物件是

Java使用Arrays.sort()方法給物件排序

當我們給一個整型陣列或者浮點型之類的陣列排序的時候,很簡單就可以達到我們排序的目的,無非是排序演算法的問題。那麼,如果我們現在想根據物件的一個屬性值給一個物件陣列進行排序呢? 假如我們現在有一個Car型別,Car類中有一個double型的speed屬性用來描述車輛的速度,現在我們想根據車

JavaArray.sort()的幾種用法 JavaArray.sort()的幾種用法

Java中Array.sort()的幾種用法 ava的Arrays類中有一個sort()方法,該方法是Arrays類的靜態方法,在需要對陣列進行排序時,非常的好用。 但是sort()的引數有好幾種,下面我就為大家一一介紹,這幾種形式的用法。 ===============================

java的排序演算法——氣泡排序

氣泡排序 工作原理: 重複的訪問要排序的序列,一次比較兩個元素,如果他們的順序錯誤就把它們交換過來,重 復進行訪問,直到排序完成,越小的元素會經過不停的交換慢慢浮到序列的最上層。 即每輪迴圈把最大的數放在最後,與選擇排序的區別,無需記錄最大數的位置,一邊比較一邊

JavaArrays作用

1 Arrays類是提供對陣列進行排序、查詢和修改等操作方法的工具類。(Arrays:儘可進行陣列升序排序) 格式:Arrays.sort(陣列名); Package Java; 2 3 import java.util.Arrays; 4 5 public c

JAVAsort排序

C++中提供了sort函式,可以讓程式設計師輕鬆地呼叫排序演算法,JAVA中也有相應的函式。 1.基本元素排序:Array.sort(排序陣列名) package test; import java.util.*; public class main { public

Java常見排序演算法詳解

插入排序 基本思想:從陣列的第二個元素開始,若比前一個元素小,就向前移動(若大於就不用移動),直到插入到合適的位置,然後再去排第三個元素,依次類推,最後一個插入到合適位置時,陣列的排序就完成了。 流程如圖所示: 程式碼如下: /** * 直接插入排序 * @date 2018

java的加密演算法

資料的加密,在資料傳輸過程中是常用到的,前面幾天在公眾號上看到一篇文章講的加密演算法,感覺寫得很不錯,於是乎記錄寫自己感覺重要的再加上寫自己的理解並粘上程式碼。 一.什麼是加密演算法資料加密的基本過程就是對原來為明文的檔案或資料按某種演算法進行處理,使其成為不可讀的一段程式碼,通常稱為“密文”,

6、java的排序演算法

1、簡介 排序是將元素按著指定關鍵字的大小遞增或遞減進行資料的排列,排序可以提高查詢的效率 2、排序演算法的分類 排序演算法可大致分為四類七種,具體分類如下:        插入排序:直接插入排序、希爾排序