Java作為時下最流行的編程語言,自流行開始就沒有衰落過,作為一門永遠不過時的語言是可怕的,總結(jié)了一些關于Java常用的排序算法,希望對大家的Java學習有所幫助。
1.插入排序算法
插入排序的基本思想是在遍歷數(shù)組的過程中,假設在序號 i 之前的元素即 [0..i-1] 都已經(jīng)排好序,本趟需要找到 i 對應的元素 x 的正確位置 k ,并且在尋找這個位置 k 的過程中逐個將比較過的元素往后移一位,為元素 x “騰位置”,最后將 k 對應的元素值賦為 x ,一般情況下,插入排序的時間復雜度和空間復雜度分別為 O(n2 ) 和 O(1)。

2.選擇排序算法
選擇排序的基本思想是遍歷數(shù)組的過程中,以 i 代表當前需要排序的序號,則需要在剩余的 [i…n-1] 中找出其中的最小值,然后將找到的最小值與 i 指向的值進行交換。因為每一趟確定元素的過程中都會有一個選擇最大值的子流程,所以人們形象地稱之為選擇排序。選擇排序的時間復雜度和空間復雜度分別為 O(n2 ) 和 O(1) 。
小編是一個有著5年工作經(jīng)驗的java程序員,對于java,自己有做資料的整合,一個完整學習java的路線,學習資料和工具,相信這里有很多學習java的小伙伴,我創(chuàng)立了一個2000人學習扣群,479121291。每晚都有java的直播課程。無論是初級還是進階的小伙伴小編我都歡迎!
3.冒泡排序算法
冒泡排序是將比較大的數(shù)字沉在最下面,較小的浮在上面
4.快速排序算法
通過一趟排序?qū)⒋庞涗浄指畛瑟毩⒌膬刹糠?其中一部分記錄的關鍵字均比另一部分的關鍵字小,則可以分別對這兩部分記錄繼續(xù)進行排序,已達到整個序列有序的目的,本質(zhì)就是,找一個基位(樞軸,分水嶺,作用是左邊的都比它小,右邊的都比它大。
5.合并排序算法
歸并排序采用的是遞歸來實現(xiàn),屬于“分而治之”,將目標數(shù)組從中間一分為二,之后分別對這兩個數(shù)組進行排序,排序完畢之后再將排好序的兩個數(shù)組“歸并”到一起,歸并排序最重要的也就是這個“歸并”的過程,歸并的過程中需要額外的跟需要歸并的兩個數(shù)組長度一致的空間。
6.希爾排序算法
希爾排序的誕生是由于插入排序在處理大規(guī)模數(shù)組的時候會遇到需要移動太多元素的問題。希爾排序的思想是將一個大的數(shù)組“分而治之”,劃分為若干個小的數(shù)組。
7.堆排序算法
本質(zhì)就是先構造一個大頂堆,parent比children大,root節(jié)點就是最大的節(jié)點 把最大的節(jié)點(root)與尾節(jié)點(最后一個節(jié)點,比較小)位置互換,剩下最后的尾節(jié)點,現(xiàn)在最大,其余的,從第一個元素開始到尾節(jié)點前一位,構造大頂堆遞歸。