摘要:一選擇排序基本思想找到數(shù)組最小的元素,將它和數(shù)組紅第一個元素交換位置,接下來,在剩下的元素中找到最小的元素,將它與數(shù)組的第二個元素交換位置,往復如此,直到將整個數(shù)組排序。特點運行時間和輸入無關。
一. 選擇排序 1.基本思想
找到數(shù)組最小的元素,將它和數(shù)組紅第一個元素交換位置,接下來,在剩下的元素中找到最小的元素,將它與數(shù)組的第二個元素交換位置,往復如此,直到將整個數(shù)組排序。基本點就是不斷地選擇剩余元素之中的最小者。
2.特點運行時間和輸入無關。
對于長度為N的數(shù)組,選擇排序需要大約N2/2次比較和N次交換
數(shù)據(jù)移動是最少的
交換次數(shù)和數(shù)組的大小是線性關系。
使用javascript實現(xiàn)的效果
function select(array){ var len=array.length; for(var i=0;i二、插入排序 1.基本思想 將一個元素插入到其它已經(jīng)有序的牌中的適當位置,因此其他所有元素在插入之前都向右移動一位,為新元素騰出空間。
2.特點插入排序所需的時間取決于輸入中元素的初始順序,一個有序的序列比隨機順序的序列花費的時間更少。
對于隨進排列的長度為N且主鍵不重復的數(shù)組,最壞情況下需要輸入N2/2function insert(array) { for (var i = 1; i < array.length; i++) { var key = array[i]; var j = i - 1; while (j >= 0 && array[j] > key) { array[j + 1] = array[j]; j--; } array[j + 1] = key; } return array; }
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/91648.html
摘要:之所以把冒泡排序選擇排序插入排序放在一起比較,是因為它們的平均時間復雜度都為。其中,冒泡排序就是原地排序算法。所以冒泡排序是穩(wěn)定的排序算法。選擇排序思路選擇排序算法的實現(xiàn)思路有點類似插入排序,也分已排序區(qū)間和未排序區(qū)間。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 1. 前言 算法為王。 想學好前端,先練好內(nèi)功,...
摘要:筆者寫的數(shù)據(jù)結構與算法之美系列用的語言是,旨在入門數(shù)據(jù)結構與算法和方便以后復習。這應該是目前較為簡單的十大經(jīng)典排序算法的文章講解了吧。比如原本在的前面,而,排序之后,在的后面十大經(jīng)典排序算法冒泡排序思想冒泡排序只會操作相鄰的兩個數(shù)據(jù)。 showImg(https://segmentfault.com/img/bVbvHet); 1. 前言 算法為王。想學好前端,先練好內(nèi)功,內(nèi)功不行,就...
摘要:代碼實現(xiàn)六堆排序算法簡介堆排序是指利用堆這種數(shù)據(jù)結構所設計的一種排序算法。九計數(shù)排序算法簡介計數(shù)排序是一種穩(wěn)定的排序算法。計數(shù)排序不是比較排序,排序的速度快于任何比較排序算法。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 1、插入排序 1)算法簡介 插入排序(Insertion-Sort)的算法描述是一種簡單直觀的排序算法。它...
摘要:推薦一下,,這里還有個可視化的排序博客,各大排序算法的實現(xiàn)都栩栩如生。堆排序堆排序是指利用堆這種數(shù)據(jù)結構所設計的一種排序算法。共勉參考維基百科排序搜索聊一聊排序算法秒殺種排序算法版排序圖解排序算法實現(xiàn)歡迎來我的博客交流 最近看到了很多公司都在準備明年的實習校招,雖然離三月份還有一段時間,感覺已經(jīng)可以準備了。在網(wǎng)上看了一些排序算法和數(shù)組去重操作,感覺都寫的很好,心血來潮,也來寫一寫。 s...
摘要:快速排序,參考排序算法的完整實現(xiàn)各種排序算法的完整實現(xiàn)如下冒泡排序選擇排序插入排序歸并排序快速排序,參考排序方法驗證冒泡排序選擇排序插入排序歸并排序快速排序源碼地址的數(shù)據(jù)結構與算法三源碼 1 排序和搜索算法 1.1 排序算法 1.1.1 冒泡排序 冒泡排序比較任何兩個相鄰的項,如果第一個比第二個大,則交換它們。元素項向上移動至正確的順序,就好像氣泡升至表面一樣,冒泡排序因此得名。冒泡...
摘要:冒泡排序冒泡排序也是一種簡單直觀的排序算法。但希爾排序是非穩(wěn)定排序算法??焖倥判蛴质且环N分而治之思想在排序算法上的典型應用。本質(zhì)上來看,快速排序應該算是在冒泡排序基礎上的遞歸分治法。 冒泡排序 冒泡排序(Bubble Sort)也是一種簡單直觀的排序算法。它重復地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數(shù)列的工作是重復地進行直到?jīng)]有再需要交換,也就...
閱讀 4001·2021-11-22 13:54
閱讀 2748·2021-09-30 09:48
閱讀 2424·2021-09-28 09:36
閱讀 3181·2021-09-22 15:26
閱讀 1424·2019-08-30 15:55
閱讀 2574·2019-08-30 15:54
閱讀 1485·2019-08-30 14:17
閱讀 2400·2019-08-28 18:25