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