亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

排序算法 之 插入排序

2019-11-10 20:38:25
字體:
來源:轉載
供稿:網友

原文地址 http://www.cnblogs.com/liukemng/p/3716164.html

本次介紹排序算法中的插入排序。

 

1.直接插入排序:

基本思想:

直接插入排序也需要對待排序的序列在外層進行n-1次遍歷,每次遍歷時只把本次遍歷次數處的元素和該元素之前的元素進行比較,來決定插入位置,并把從插入位置開始到該元素之前的所有元素后移,使從序列開始到該元素為止序列中的元素有序,直至遍歷完成序列整體有序,插入排序算法的時間復雜度為O(n2);

如下表格所示為待排序的序列:

321765489

當進行第一次遍歷時把元素e[1]和e[0]作比較,e[1]<e[0],所以e[1]插入e[0]的位置e[0]元素后移,第一次遍歷后序列中元素排列順序如下:

231765489

當進行第二次遍歷時把元素e[2]和e[0]、e[1]作比較,e[2]<e[0],所以e[2]插入e[0]的位置e[0]、e[1]元素后移,第二次便利后序列中元素排列順序如下:

123765489

然后繼續進行遍歷,直至序列遍歷完成…

代碼實現:

復制代碼
/// <summary>/// 直接插入排序/// </summary>/// <param name="intArray"></param>/// <param name="length"></param>public static void InsertSort(int[] intArray, int length){    int i, j, k, temp, insertIndex;    for (i = 1; i < length; i++)    {        insertIndex=0;        temp = intArray[i];        for (j = i - 1; j >= 0; j--)        {            if (temp > intArray[j])            {                insertIndex = j+1;                break;            }        }        if (insertIndex != i)        {            for (k = i; k > insertIndex; k--)            {                intArray[k] = intArray[k - 1];            }            intArray[insertIndex] = temp;        }    }}復制代碼

2.改進的插入排序算法:

在上面的插入排序算法中,我們先對本次排序中的元素進行循環比較找出插入位置,然后找出插入位置并把從插入位置處的元素進行后移,如果插入的位置不是元素本身的位置就多了元素后移操作,我們可以把元素比較和元素后移操作放在同一個循環中提高效率;

代碼實現:

復制代碼
/// <summary>/// 直接插入排序優化1/// 在比較的同時移動元素/// </summary>/// <param name="intArray"></param>/// <param name="length"></param>public static void InsertSort1(int[] intArray, int length){    int i, j, temp, insertIndex;    for (i = 1; i < length; i++)    {        if (intArray[i] < intArray[i - 1])        {            temp = intArray[i];            insertIndex = i;            for (j = i - 1; j >= 0 && temp < intArray[j]; j--)            {                intArray[j + 1] = intArray[j];                insertIndex = j;            }            intArray[insertIndex] = temp;        }    }}復制代碼

3.折半插入排序:

基本思想:

折半插入排序外層遍歷與直接插入排序外層遍歷相同,不同的是每次遍歷時把本次遍歷次數處的元素與之前排序好的元素序列中間的元素作比較,如果小于中間的元素則把中間元素的前一個元素作為新的比較序列的末尾元素,待插入元素重新與新序列中間元素比較,如果大于中間元素則把中間元素的后一個元素作為新的比較序列的起始元素,待插入元素重新與新序列中間元素比較,直至新序列開始元素的位置大于結束元素的位置搜索結束,找出插入位置并移動元素,折半插入排序算法的時間復雜度仍為O(n2),但效率依然比直接插入排序高;

代碼實現:

復制代碼
/// <summary>/// 折半插入算法/// </summary>/// <param name="intArray"></param>/// <param name="length"></param>public static void BinaryInsertSort(int[] intArray, int length){    int i, j, low, high, temp, middle;    for (i = 1; i < length; i++)    {        temp = intArray[i];        low = 0;        high = i - 1;        while (low <= high)        {            middle = (low + high) / 2;            if (temp < intArray[middle])                high = middle - 1;            else                low = middle + 1;        }        if (low != i)        {            for (j = i; j > low; j--)            {                intArray[j] = intArray[j - 1];            }            intArray[low] = temp;        }    }}復制代碼

以上就是插入排序算法的內容。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人精品在线观看| 日本亚洲欧洲色α| 欧美成人午夜激情视频| 精品女厕一区二区三区| 日韩电影在线观看中文字幕| 欧美日韩国产麻豆| 8050国产精品久久久久久| 亚洲日本欧美日韩高观看| 深夜福利一区二区| 欧美日韩国产精品| 最近2019年手机中文字幕| 欧美人在线视频| 久久这里有精品| 久久中文字幕在线| 日本一区二区三区在线播放| 亚洲欧美精品伊人久久| 中文字幕9999| 日韩av在线影视| 亚洲va久久久噜噜噜久久天堂| 国产精品一区二区在线| 日韩在线视频观看| 最新亚洲国产精品| 成人黄色午夜影院| 欧美一区二区三区精品电影| 亚洲毛片一区二区| 色综合男人天堂| 成人免费淫片视频软件| 日日骚av一区| 久久久久久91香蕉国产| 亚洲午夜精品久久久久久久久久久久| 色先锋资源久久综合5566| 亚洲欧美色图片| 精品久久久久久中文字幕大豆网| 久久综合伊人77777| 国产婷婷色综合av蜜臀av| 操人视频在线观看欧美| 91久久在线观看| 精品日韩中文字幕| 欧美老少做受xxxx高潮| 久久精品国产91精品亚洲| 国产精品一区=区| 九九久久久久久久久激情| 精品福利免费观看| 亚洲一区二区免费在线| 色妞一区二区三区| 国产欧美精品日韩精品| 色樱桃影院亚洲精品影院| 97在线视频一区| 国产精品美女999| 亚洲一区二区三区四区视频| 国产精品久久久久久影视| 亚洲男子天堂网| 国产一区欧美二区三区| 久热爱精品视频线路一| 亚洲free性xxxx护士白浆| 九九视频直播综合网| 26uuu亚洲国产精品| 97色在线视频| 成人黄色av网站| 两个人的视频www国产精品| 伊人久久大香线蕉av一区二区| 欧美片一区二区三区| 国产日韩一区在线| 亚洲色图在线观看| 亚洲欧美日韩中文在线制服| 国产+成+人+亚洲欧洲| 一区二区成人av| 欧美视频在线观看 亚洲欧| 亚洲国产高潮在线观看| 精品国产网站地址| 国产成人精品免高潮在线观看| 亚洲欧美在线磁力| 国产欧美一区二区三区视频| 一区二区三区四区在线观看视频| 国产精品pans私拍| 成人妇女免费播放久久久| 国产一区二区三区在线视频| 亚洲国产成人av在线| 在线亚洲国产精品网| 欧美黄色片免费观看| 国产有码在线一区二区视频| 亚洲激情电影中文字幕| 亚洲精品免费av| 久久成人这里只有精品| 在线亚洲国产精品网| 狠狠色香婷婷久久亚洲精品| 少妇av一区二区三区| 日韩精品小视频| 精品国产精品三级精品av网址| 久久综合伊人77777蜜臀| 都市激情亚洲色图| 国产成人综合精品| 在线精品国产成人综合| 欧美精品激情blacked18| 欧美日韩一二三四五区| 欧美成人亚洲成人| 欧美成人黄色小视频| 中文字幕国产精品久久| 精品调教chinesegay| 欧美不卡视频一区发布| 欧美日韩国产页| 成人自拍性视频| 亚洲а∨天堂久久精品喷水| 欧美一级大胆视频| 久久精品精品电影网| 欧美乱妇高清无乱码| 欧美大胆a视频| 国产www精品| 秋霞av国产精品一区| 日韩中文字幕久久| 精品国产网站地址| 久久人人爽人人| 欧美华人在线视频| 欧美另类极品videosbest最新版本| 国产成人亚洲综合| 日韩精品视频在线免费观看| 亚洲国产成人在线视频| 精品久久久香蕉免费精品视频| 中文字幕亚洲色图| 国产精品稀缺呦系列在线| 欧美福利在线观看| 91精品视频免费看| 日韩的一区二区| 精品女同一区二区三区在线播放| 色偷偷88888欧美精品久久久| 在线视频欧美性高潮| 亚洲石原莉奈一区二区在线观看| 欧美日韩国产专区| 欧美日韩亚洲国产一区| 91久久久久久久久久久久久| 亚洲国内精品在线| 日韩在线一区二区三区免费视频| 欧美激情亚洲一区| 久久伊人精品一区二区三区| 91av在线免费观看| 91色视频在线观看| 久久频这里精品99香蕉| 国产婷婷成人久久av免费高清| 国模私拍视频一区| 亚洲一区av在线播放| 精品国产一区二区三区久久狼黑人| 91久久精品国产91久久| 日产精品久久久一区二区福利| 亚洲人成网站色ww在线| 欧美色播在线播放| 国产一区二区日韩| 成人h视频在线观看播放| 91色视频在线导航| 精品久久久中文| 久久久精品一区二区三区| 亚洲第一免费播放区| 日韩在线视频国产| 全亚洲最色的网站在线观看| 77777亚洲午夜久久多人| 国产在线视频2019最新视频| 91精品国产91久久久久久最新| 日韩免费电影在线观看| 亚洲第一男人天堂| 日韩精品亚洲精品| 日韩av在线一区二区| 成人黄色大片在线免费观看| 91成人免费观看网站| 久久久999国产精品| 91在线观看免费网站|