摘要:剛想寫寫插入排序算法,突然發(fā)現(xiàn)有點(diǎn)生疏,百度了一下,了解其基本思想之后,就開始了。直接插入排序算法思路是待排序記錄,,,第一步將無序表打第一個(gè)元素作為一個(gè)有序表。第二步將加入到有序表中,使有序表依舊有序第步,,,以此類推。
剛想寫寫插入排序算法,突然發(fā)現(xiàn)有點(diǎn)生疏,百度了一下,了解其基本思想之后,就開始coding了。
直接插入排序算法思路是:
待排序記錄 R1,R2,… ,Rn–1, Rn
第一步:將無序表打第一個(gè)元素作為一個(gè)有序表。
第二步:將R2加入到有序表中,使有序表依舊有序
.........
第 n 步: (R1,R2,… ,Rn–1), Rn.
以此類推。
直接插入排序算法的時(shí)間復(fù)雜度,最好的情況是待排序記錄是有序的,O(N),最壞打情況是記錄從大到小排列,O(N2)。
貼出我的代碼
//這是我寫的一個(gè)排序方法和輸出方法 public static void sort(int[] data) { for (int index = 1; index <= data.length - 1; index++) { int temp = data[index]; int j = index - 1; for (; j >= 0 && temp < data[j]; j--) { data[j + 1] = data[j]; } data[j + 1] = temp; } } public static void print(int[] data) { for (int out : data) { System.out.print(out + " "); } System.out.println(); }
以下是用一個(gè)測(cè)試類來測(cè)試結(jié)果
package DirectInsert; /** * Created by linxs on 16-6-14. */ public class TestSort { public static void main(String[] args) { int[] data = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; Sort.print(data); Sort.sort(data); Sort.print(data); } }
代碼比較簡(jiǎn)單,就不多做贅述了,最后看運(yùn)行結(jié)果。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64808.html
摘要:強(qiáng)烈推薦上值得前端學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)與算法項(xiàng)目,包含圖的演示過程與視頻講解。該倉庫包含了多種基于的算法與數(shù)據(jù)結(jié)構(gòu),提供進(jìn)一步閱讀的解釋和鏈接。數(shù)據(jù)結(jié)構(gòu)和算法必知必會(huì)的個(gè)代碼實(shí)現(xiàn)。 showImg(https://segmentfault.com/img/bVbvpYZ); 前言 算法為王。想學(xué)好前端,先練好內(nèi)功,內(nèi)功不行,就算招式練的再花哨,終究成不了高手;只有內(nèi)功深厚者,前端之路才會(huì)走得...
摘要:結(jié)構(gòu)型模式適配器模式橋接模式裝飾模式組合模式外觀模式享元模式代理模式。行為型模式模版方法模式命令模式迭代器模式觀察者模式中介者模式備忘錄模式解釋器模式模式狀態(tài)模式策略模式職責(zé)鏈模式責(zé)任鏈模式訪問者模式。 主要版本 更新時(shí)間 備注 v1.0 2015-08-01 首次發(fā)布 v1.1 2018-03-12 增加新技術(shù)知識(shí)、完善知識(shí)體系 v2.0 2019-02-19 結(jié)構(gòu)...
摘要:接下來我來說明快速排序的思路以及實(shí)現(xiàn)的代碼??焖倥判蛩悸肥紫仁嵌x一個(gè)變量,把數(shù)組的第一個(gè)元素的值賦給,然后定義兩個(gè)變量指向數(shù)組的第一個(gè)元素和最后一個(gè)元素。 今天突然想寫個(gè)排序,以前寫過,然后寫了之后一直出錯(cuò),然后自己百度了一下,看了別人寫的方法,自己也嘗試著寫了一個(gè)。接下來我來說明快速排序的思路以及實(shí)現(xiàn)的代碼。 快速排序思路:首先是定義一個(gè)變量key,把數(shù)組的第一個(gè)元素的值賦給key...
摘要:之所以把冒泡排序選擇排序插入排序放在一起比較,是因?yàn)樗鼈兊钠骄鶗r(shí)間復(fù)雜度都為。其中,冒泡排序就是原地排序算法。所以冒泡排序是穩(wěn)定的排序算法。選擇排序思路選擇排序算法的實(shí)現(xiàn)思路有點(diǎn)類似插入排序,也分已排序區(qū)間和未排序區(qū)間。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 1. 前言 算法為王。 想學(xué)好前端,先練好內(nèi)功,...
閱讀 2567·2021-09-22 15:25
閱讀 2979·2021-09-14 18:03
閱讀 1228·2021-09-09 09:33
閱讀 1712·2021-09-07 09:59
閱讀 2939·2021-07-29 13:50
閱讀 1509·2019-08-30 15:44
閱讀 1723·2019-08-29 16:22
閱讀 1295·2019-08-29 12:49