詳情描述
Java作為時下流行的編程語言,自流行開始就沒有衰落過,作為一門永遠不過時的語言是可怕的,在千鋒教育參加Java培訓時總結了一些關于Java常用的排序算法,希望對大家的Java學習有所幫助。
1.插入排序算法
插入排序的基本思想是在遍歷數組的過程中,假設在序i 之前的元素即 都已經排好序,本趟需要找到 i 對應的元素 x 的正確位置 k ,并且在尋找這個位置 k 的過程中逐個將比較過的元素往后移一位,為元素 x “騰位置”,后將 k 對應的元素值賦為 x ,一般情況下,插入排序的時間復雜度和空間復雜度分別為 和 O(1)。
2.選擇排序算法
選擇排序的基本思想是遍歷數組的過程中,以 i 代表當前需要排序的序號,則需要在剩余的 中找出其中的小值,然后將找到的小值與 i 指向的值進行交換。因為每一趟確定元素的過程中都會有一個選擇大值的子流程,所以人們形象地稱之為選擇排序。選擇排序的時間復雜度和空間復雜度分別為 和 O(1) 。
3.冒泡排序算法
冒泡排序是比大的字沉在下面,較小的浮在上面
4.快速排序算法
通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分的關鍵字小,則可以分別對這兩部分記錄繼續(xù)進行排序,已達到整個序列有序的目的,本質就是,找一個基位(樞軸,分水嶺,作用是左邊的都比它小,右邊的都比它大。
5.合并排序算法
歸并排序采用的是遞歸來實現,屬于“分而治之”,將目標數組從中間一分為二,之后分別對這兩個數組進行排序,排序完畢之后再將排好序的兩個數組“歸并”到一起,歸并排序重要的也就是這個“歸并”的過程,歸并的過程中需要額外的跟需要歸并的兩個數組長度一致的空間
6.希爾排序算法
希爾排序的誕生是由于插入排序在處理大規(guī)模數組的時候會遇到需要移動太多元素的問題。希爾排序的思想是將一個大的數組“分而治之”,劃分為若干個小的數組。
7.堆排序算法
本質就是先構造一個大頂堆,parent比children大,root節(jié)點就是大的節(jié)點 把大的節(jié)點(root)與尾節(jié)點(后一個節(jié)點,比較?。┪恢没Q,剩下后的尾節(jié)點,現在大,其余的,從第一個元素開始到尾節(jié)點前一位,構造大頂堆遞歸。
千鋒教育的Java課程不斷更新,學員對于Java的學習興趣依舊不減,來千鋒學習Java,你將有不一樣的收獲。
千鋒教育:
千鋒北京校區(qū):
北京天豐利校區(qū):北京市海淀區(qū)寶盛北里西區(qū)28號天豐利商城4層
北京沙河校區(qū):北京市昌平區(qū)沙陽路18號北京科技職業(yè)技術學院廣場服務樓2層、南區(qū)服務樓2層
01
面授課程:全棧HTML5+培訓、UI交互設計培訓、PHP培訓、Java+云數據培訓、大數據開發(fā)培訓游戲開發(fā)培訓、Python培訓、Linux云計算培訓、全棧軟件測試培訓、Android培訓、iOS培訓、好程序員