JAVA算法起步之插入排序?qū)嵗?/h1>
更新時(shí)間:2014年02月10日 15:19:47 作者:
這篇文章主要介紹了JAVA算法起步之插入排序?qū)嵗?需要的朋友可以參考下
趁著過年這段時(shí)間,我將算法導(dǎo)論這本書看了一遍,感覺受益匪淺。著這里也根據(jù)算法導(dǎo)論中所涉及到的算法用java實(shí)現(xiàn)了一遍。
第一篇我們就從排序開始,插入排序的原理很簡(jiǎn)單,就像我們玩撲克牌時(shí)一樣。如果手里拿的牌比他前一張小,就繼續(xù)向前比較,知道這張牌比他前面的牌打時(shí)候就可以插在他的后面。當(dāng)然在計(jì)算機(jī)中我們相應(yīng)的也需要將對(duì)比過的牌向后移一位才可以。
這里直接給出算法,相信很多程序員都感覺有些程序比我們的自然語(yǔ)言都要好理解。
復(fù)制代碼 代碼如下:
public class Sort {
public void sort(int[] s){
if(s.length<1){
return ;
}
for (int i = 1; i < s.length; i++) {
int key =s[i];
int j=i-1;
while(j>=0&&s[j]>key){
s[j+1]=s[j];
j--;
}
s[j+1]=key;
}
}
public static void main(String[] args) {
Sort s=new Sort();
int[] st =new int[]{7,5,3,4,2,1};
s.sort(st);
for (int i = 0; i < st.length; i++) {
System.out.println(st[i]);
}
}
}
他的時(shí)間復(fù)雜度是o(n*n),是原址的(任何時(shí)候都需要常數(shù)個(gè)二外的元素空間存儲(chǔ)數(shù)據(jù)而歸并排序就是非原址的)
您可能感興趣的文章:- Java算法之?dāng)?shù)組冒泡排序代碼實(shí)例講解
- Java算法之串的簡(jiǎn)單處理
- Java算法實(shí)現(xiàn)調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)之前的講解
- Java算法實(shí)現(xiàn)楊輝三角的講解
- Java算法之冒泡排序?qū)嵗a
- Java算法之最長(zhǎng)公共子序列問題(LCS)實(shí)例分析
- java算法實(shí)現(xiàn)紅黑樹完整代碼示例
- Java算法之堆排序代碼示例
- java算法之二分查找法的實(shí)例詳解
- java算法導(dǎo)論之FloydWarshall算法實(shí)現(xiàn)代碼
- java算法實(shí)現(xiàn)預(yù)測(cè)雙色球中獎(jiǎng)號(hào)碼
- Java算法之遞歸算法計(jì)算階乘
- JAVA算法起步之堆排序?qū)嵗?/a>
- JAVA算法起步之快速排序?qū)嵗?/a>
- 關(guān)于各種排列組合java算法實(shí)現(xiàn)方法
- Java算法之時(shí)間復(fù)雜度和空間復(fù)雜度的概念和計(jì)算
相關(guān)文章
-
Spring Boot項(xiàng)目中定制攔截器的方法詳解
這篇文章主要介紹了Spring Boot項(xiàng)目中定制攔截器的方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下 2019-10-10
-
Java語(yǔ)法基礎(chǔ)之函數(shù)的使用說明
函數(shù)就是定義在類中的具有特定功能的一段小程序,函數(shù)也稱為方法 2013-07-07
-
詳談Spring是否支持對(duì)靜態(tài)方法進(jìn)行Aop增強(qiáng)
這篇文章主要介紹了Spring是否支持對(duì)靜態(tài)方法進(jìn)行Aop增強(qiáng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教 2021-12-12
-
Java spring boot 實(shí)現(xiàn)支付寶支付功能的示例代碼
這篇文章主要介紹了Java spring boot 實(shí)現(xiàn)支付寶支付功能,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 2020-06-06
-
Java 內(nèi)存模型中的happen-before關(guān)系詳解
這篇文章主要為大家介紹了Java 內(nèi)存模型中的happen-before關(guān)系示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪 2022-10-10
-
spring?boot獲取session的值為null問題及解決方法
我在登陸的時(shí)候,登陸成功后將name存進(jìn)了session,然后在獲取個(gè)人信息時(shí)取出session里的name的值為null,接下來通過本文給大家分享springboot獲取session的值為null問題,需要的朋友可以參考下 2023-05-05
-
MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查
本文主要介紹了MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2023-04-04
最新評(píng)論
趁著過年這段時(shí)間,我將算法導(dǎo)論這本書看了一遍,感覺受益匪淺。著這里也根據(jù)算法導(dǎo)論中所涉及到的算法用java實(shí)現(xiàn)了一遍。
第一篇我們就從排序開始,插入排序的原理很簡(jiǎn)單,就像我們玩撲克牌時(shí)一樣。如果手里拿的牌比他前一張小,就繼續(xù)向前比較,知道這張牌比他前面的牌打時(shí)候就可以插在他的后面。當(dāng)然在計(jì)算機(jī)中我們相應(yīng)的也需要將對(duì)比過的牌向后移一位才可以。
這里直接給出算法,相信很多程序員都感覺有些程序比我們的自然語(yǔ)言都要好理解。
public class Sort {
public void sort(int[] s){
if(s.length<1){
return ;
}
for (int i = 1; i < s.length; i++) {
int key =s[i];
int j=i-1;
while(j>=0&&s[j]>key){
s[j+1]=s[j];
j--;
}
s[j+1]=key;
}
}
public static void main(String[] args) {
Sort s=new Sort();
int[] st =new int[]{7,5,3,4,2,1};
s.sort(st);
for (int i = 0; i < st.length; i++) {
System.out.println(st[i]);
}
}
}
他的時(shí)間復(fù)雜度是o(n*n),是原址的(任何時(shí)候都需要常數(shù)個(gè)二外的元素空間存儲(chǔ)數(shù)據(jù)而歸并排序就是非原址的)
- Java算法之?dāng)?shù)組冒泡排序代碼實(shí)例講解
- Java算法之串的簡(jiǎn)單處理
- Java算法實(shí)現(xiàn)調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)之前的講解
- Java算法實(shí)現(xiàn)楊輝三角的講解
- Java算法之冒泡排序?qū)嵗a
- Java算法之最長(zhǎng)公共子序列問題(LCS)實(shí)例分析
- java算法實(shí)現(xiàn)紅黑樹完整代碼示例
- Java算法之堆排序代碼示例
- java算法之二分查找法的實(shí)例詳解
- java算法導(dǎo)論之FloydWarshall算法實(shí)現(xiàn)代碼
- java算法實(shí)現(xiàn)預(yù)測(cè)雙色球中獎(jiǎng)號(hào)碼
- Java算法之遞歸算法計(jì)算階乘
- JAVA算法起步之堆排序?qū)嵗?/a>
- JAVA算法起步之快速排序?qū)嵗?/a>
- 關(guān)于各種排列組合java算法實(shí)現(xiàn)方法
- Java算法之時(shí)間復(fù)雜度和空間復(fù)雜度的概念和計(jì)算
相關(guān)文章
Spring Boot項(xiàng)目中定制攔截器的方法詳解
這篇文章主要介紹了Spring Boot項(xiàng)目中定制攔截器的方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
Java語(yǔ)法基礎(chǔ)之函數(shù)的使用說明
函數(shù)就是定義在類中的具有特定功能的一段小程序,函數(shù)也稱為方法2013-07-07
詳談Spring是否支持對(duì)靜態(tài)方法進(jìn)行Aop增強(qiáng)
這篇文章主要介紹了Spring是否支持對(duì)靜態(tài)方法進(jìn)行Aop增強(qiáng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java spring boot 實(shí)現(xiàn)支付寶支付功能的示例代碼
這篇文章主要介紹了Java spring boot 實(shí)現(xiàn)支付寶支付功能,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
Java 內(nèi)存模型中的happen-before關(guān)系詳解
這篇文章主要為大家介紹了Java 內(nèi)存模型中的happen-before關(guān)系示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
spring?boot獲取session的值為null問題及解決方法
我在登陸的時(shí)候,登陸成功后將name存進(jìn)了session,然后在獲取個(gè)人信息時(shí)取出session里的name的值為null,接下來通過本文給大家分享springboot獲取session的值為null問題,需要的朋友可以參考下2023-05-05
MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查
本文主要介紹了MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04

