日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python算法与数据结构-插入排序算法(34)

發(fā)布時(shí)間:2024/9/20 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python算法与数据结构-插入排序算法(34) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

閱讀目錄

  • 一、插入排序的介紹
  • 二、插入排序的原理
  • 三、插入排序的圖解
  • 四、插入排序的python代碼實(shí)現(xiàn)
  • 五、插入排序的C語言代碼實(shí)現(xiàn)
  • 六、插入排序的時(shí)間復(fù)雜度
  • 七、插入排序的穩(wěn)定性

一、插入排序的介紹

  插入排序的工作方式非常像人們排序一手撲克牌一樣。開始時(shí),我們的左手為空并且桌子上的牌面朝下。然后,我們每次從桌子上拿走一張牌并將它插入左手中正確的位置。為了找到一張牌的正確位置,我們從右到左將它與已在手中的每張牌進(jìn)行比較,如下圖所示:

  那插曲排序是如何借助上面提到的思想來實(shí)現(xiàn)排序的呢?首先我們將數(shù)組中的數(shù)據(jù)分為兩個(gè)區(qū)間,已排序區(qū)間和未排序區(qū)間。初始已排序區(qū)間只有一個(gè)元素,就是數(shù)組的第一個(gè)元素,然后在未排序區(qū)間中依次取出元素并插入到已排序區(qū)間的合適位置,并保證已排序區(qū)間一直是有序。重復(fù)這個(gè)步驟直到未排序區(qū)間元素為空,算法結(jié)束。

  插入排序算法是基于某序列已經(jīng)有序排列的情況下,通過一次插入一個(gè)元素的方式按照原有排序方式增加元素。這種比較是從該有序序列的最末端開始執(zhí)行,即要插入序列中的元素最先和有序序列中最大的元素比較,若其大于該最大元素,則可直接插入最大元素的后面即可,否則再向前一位比較查找直至找到應(yīng)該插入的位置為止。插入排序的基本思想是,每次將1個(gè)待排序的記錄按其關(guān)鍵字大小插入到前面已經(jīng)排好序的子序列中,尋找最適當(dāng)?shù)奈恢?#xff0c;直至全部記錄插入完畢。執(zhí)行過程中,若遇到和插入元素相等的位置,則將要插人的元素放在該相等元素的后面,因此插入該元素后并未改變?cè)蛄械那昂箜樞颉N覀冋J(rèn)為插入排序也是一種穩(wěn)定的排序方法。插入排序分直接插入排序、折半插入排序希爾排序3類。

二、插入排序的原理

  • 從第一個(gè)元素開始,該元素可以認(rèn)為已經(jīng)被排序
  • 取出下一個(gè)元素,在已經(jīng)排序的元素序列中從后向前掃描
  • 如果該元素(已排序)大于新元素,將該元素移到下一位置
  • 重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置
  • 將新元素插入到該位置后
  • 重復(fù)步驟2~5
  • 三、插入排序的圖解

    四、插入排序的python代碼實(shí)現(xiàn)

    # 定義插入排序函數(shù) def insertion_sort(list):# 獲取需要排序數(shù)據(jù)的個(gè)數(shù)N = len(list)# 插入排序的第一次插入從第二個(gè)數(shù)字開始選擇,所以下標(biāo)從1開始for i in range(1,N):# 從選擇插入的數(shù)據(jù),一次和它前一個(gè)比較,主要比前面的小就交換for j in range(i,0,-1):# 判斷大小if list[j]<list[j-1]:# 交換temp = list[j]list[j] = list[j-1]list[j-1] = tempnumlist = [19,2,13,8,34,25,7] print("排序前:%s"%numlist) insertion_sort(numlist) print("排序后:%s"%numlist)

    運(yùn)行結(jié)果為:

    排序前:[19, 2, 13, 8, 34, 25, 7] 排序后:[2, 7, 8, 13, 19, 25, 34]

    五、插入排序的C語言代碼實(shí)現(xiàn)

    #include <stdio.h> // 定義插入排序函數(shù) void insertion_sort(int array[],int ArrayLenght) {// 插入排序的第一次插入從第二個(gè)數(shù)字開始選擇,所以下標(biāo)從1開始for (int i=1; i<ArrayLenght; i++){// 從選擇插入的數(shù)據(jù),一次和它前一個(gè)比較,主要比前面的小就交換for (int j=i; j>0; j--){// 判斷大小if (array[j]<array[j-1]){// 交換int temp = array[j];array[j] = array[j-1];array[j-1] = temp;}}} }int main(int argc, const char * argv[]) {// 插入排序函數(shù)的聲明void insertion_sort(int array[],int ArrayLenght);// 需要排序的數(shù)組int a[] = {19,2,13,8,34,25,7};// 調(diào)用插入排序insertion_sort(a, 7);// 打印驗(yàn)證for (int i =0; i<7; i++){printf("%d ",a[i]);}return 0; }

    運(yùn)行結(jié)果為:

    2 7 8 13 19 25 34

    六、插入排序的時(shí)間復(fù)雜度

    • 最優(yōu)時(shí)間復(fù)雜度:O(n) (升序排列,序列已經(jīng)處于升序狀態(tài))
    • 最壞時(shí)間復(fù)雜度:O(n^2)

    七、插入排序的穩(wěn)定性

      插入排序的基本思想是,每次將1個(gè)待排序的數(shù)據(jù)按其大小插入到前面已經(jīng)排好序的子序列中,尋找最適當(dāng)?shù)奈恢?#xff0c;直至全部記錄插入完畢。執(zhí)行過程中,若遇到和插入元素相等的位置,則將要插人的元素放在該相等元素的后面,因此插入該元素后并未改變?cè)蛄械那昂箜樞颉N覀冋J(rèn)為插入排序也是一種穩(wěn)定的排序方法。?

    ?


    侯哥語錄:我曾經(jīng)是一個(gè)職業(yè)教育者,現(xiàn)在是一個(gè)自由開發(fā)者。我希望我的分享可以和更多人一起進(jìn)步。分享一段我喜歡的話給大家:"我所理解的自由不是想干什么就干什么,而是想不干什么就不干什么。當(dāng)你還沒有能力說不得時(shí)候,就努力讓自己變得強(qiáng)大,擁有說不得權(quán)利。"

    來源:https://www.cnblogs.com/Se7eN-HOU/p/11069668.html

    總結(jié)

    以上是生活随笔為你收集整理的python算法与数据结构-插入排序算法(34)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久黄色视 | 久久精品第一页 | 欧美一区三区 | 79日本xxxxxxxxx18| 午夜免费一级片 | 国产精品久久久久久久久免费看 | 精品日本一区二区三区在线观看 | av网站地址 | 欧美激情性做爰免费视频 | 麻豆91在线观看 | 人人妻人人澡人人爽精品日本 | 草av | 欧美日韩片 | 日本熟妇色xxxxx日本免费看 | 国产精品福利电影 | avtt在线播放 | www九九热| 午夜色福利| 男女啪啪av| 亚洲第一页在线观看 | 伊人情人综合 | 成人免费无码大片a毛片 | 日穴视频 | 亚洲国产97在线精品一区 | 欧美美女性视频 | 白白色免费视频 | 四虎影库永久在线 | 国产777 | 亚洲香蕉在线视频 | 精品视频免费播放 | 久久免费视频网站 | 国内少妇精品 | 成人 黄 色 免费播放 | 国产亚洲无码精品 | 老司机午夜视频 | 涩涩网站免费 | 欧美成人综合在线 | 国产高清在线观看视频 | 麻豆网页| 亚洲va国产天堂va久久 en | 91亚色视频 | 色婷婷亚洲一区二区三区 | 亚洲午夜精品 | 国产精品爽爽久久久久久 | 黑人毛片网站 | 毛利兰被扒开腿做同人漫画 | 看全色黄大色黄大片大学生 | 免费播放毛片 | 天堂8在线视频 | 欧美日韩999 | 国产在线精品成人欧美 | 91精品国产一区二区无码 | 成年人免费看视频 | 91中文字幕网 | 久久99精品视频 | 欧美亚洲国产精品 | 涩涩视频网站在线观看 | 精品国产一级久久 | 中文字幕永久在线观看 | 欧美日韩操| 九九热精品在线观看 | 色综合一区二区 | 123成人网| 国产精华一区二区三区 | 欧美高清精品一区二区 | 欧美日韩视频在线观看一区 | 超碰人人射 | 综合激情亚洲 | 亚洲中字在线 | 欧美中文字幕一区二区 | 夜夜福利| 91精品国产高清一区二区三密臀 | 成年人a级片| 上原亚衣在线观看 | 中文字幕亚洲欧美 | 亚洲AV第二区国产精品 | 五月av在线 | 38激情| 精品中文在线 | 你懂的欧美 | 免费观看理伦片在线播放视频软件 | 亚洲性欧美 | 丰满护士巨好爽好大乳 | 欧美aaaaa| 成人午夜av | 天天草天天干 | 成人福利一区二区 | 西西444www大胆无视频 | 午夜久久影院 | 人妻 丝袜美腿 中文字幕 | 超碰97在线资源 | 日韩成人午夜影院 | 91在线免费看 | 97精品一区二区 | xxx国产精品 | 国产波霸爆乳一区二区 | 草草在线影院 | 青青草97国产精品免费观看 | 国产v亚洲 |