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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言排序算法 应用与实现,基于C语言排序算法改进与应用.doc

發布時間:2024/1/23 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言排序算法 应用与实现,基于C语言排序算法改进与应用.doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于C語言排序算法改進與應用

基于C語言排序算法改進與應用

摘 要:介紹了程序語言中排序的原理及應用,闡述了基于C語言的三種主要排序方法,提出了每種排序方法的改進,計算出改進后算法的時間復雜度,編寫了每種排序方法程序設計的主要語句,通過實例應用,對每種排序方法的算法改進前后進行對比,證明了改進后算法的優越性。

關鍵詞:C語言;排序;改進;應用   中圖分類號:TP312 文獻標識碼:A   1 引言   我們日常生活中經常會碰到一些需要按順序排列的情況,諸如大小、高矮等,這些一般都是排列對象數量較小、憑人力在有限的時間內能夠完成的任務。本文討論的排序是面向計算機程序處理的,是計算機程序設計中經常需要進行的一類操作,可以定義為:將一組雜亂無序的記錄或數據元素通過一定的方法重新排列為按某個關鍵字的有序序列[1]。   在計算機程序設計中所使用的排序按所訪問的存儲器不同可以分為內部排序和外部排序;按相同關鍵字處理方法的不同可以分為穩定排序和不穩定排序;按計算機需要進行運算的時間復雜度和空間復雜度的大小,可以分為好、平均、差等類別,其時間復雜度和空間復雜度越小代表排序算法占用計算機資源越少,該排序方法就越好[2]。   基于C語言的排序一般有七種:選擇排序,插入排序,起泡排序,快速排序,堆排序,歸并排序,基數排序,其中最主要的是選擇法、插入法、起泡法三種,本文主要就以上三種方法進行討論。   2 三種排序及其改進方法簡述   2.1 選擇排序   基本方法:在待排序數據元素中持續選擇最大(最小)的元素放在新序列的第一位、第二位……,直到所有數據全部選擇完畢。用語言描述排序過程為:第一次從原序列中選擇最大的數,放在第一位,第二次從剩下的序列中選擇最大的數放在第二位,以此類推,最后將最小的數放在最后一位,從而完成排序[3]。   這種排序存在一個問題:沒有考慮原序列的初始排序情況,即使原來的序列元素已經按從大到小排列,程序也必須執行次比較,時間復雜度為,如果原序列元素龐大,就會占用許多系統資源,造成不必要的浪費。   改進方法:在待排列序列中將數據元素兩兩比對,大者上升,上升的數據元素再次兩兩比對,大者上升,直到結束。排序過程為:在一棵二叉樹上,從底層開始,將數據元素兩兩比較,選擇較大的一個上升,再次將第二層的數據元素進行兩兩比較,選擇較大的一個上升,直到選出最大的一個,放在二叉樹頂層,然后將這個最大數所在結點全部清空,再從最底層進行兩兩比較,依次循環,選出最小的一個,完成排序過程,改進的選擇排序又叫樹形選擇排序或者錦標賽排列。   這種排序方法每選擇一個較大元素需要進行比較,其時間復雜度為,相對原來的基本方法,可以節約系統資源。   本算法的主要語句:   2.2 插入排序   基本方法:將待排序的數據元素插入到已經排序的數據序列中,得到一個新的序列,直到所有待排序的元素全部插入完畢。遞增排序過程為:首先將待排序序列的第一個元素看作有序序列,將第二個元素拿來與之比較,比其大則插在其后面,反之插在前面;其次再將得到的新序列看作有序序列,將第三個元素拿來從前向后比較,插到比自身大的元素之前,依次插入,直到最后一次元素插入完畢,完成排序過程[4]。   直接插入排序方法每插入一個元素都要從新序列的首部開始,其時間復雜度為,隨著待排序元素的增加,其占用的時間和空間就越多,增加系統負擔。   改進方法:將待排序的元素插入到已排序的序列中,不是從頭開始比較,而是從中間開始比較,確定應該插入在前一半還是后一半中,再從這一半的中間比較,確定更小的一半,最終找到合適的位置插入。   本算法的主要語句:   改進的插入排序又叫折半排序,其空間占用不變,但在時間上減少了元素相互比較的次數,但沒有減少元素的移動次數,其時間復雜度仍為。   2.3 起泡排序   基本方法:起泡排序的核心思想是“比較+交換”,兩兩比較,逆序交換,直到全部比較并交換完畢。遞增排序過程為:將前二個元素比較,如果第一個大,則將二個數交換,再進行第二個第三個元素的比較,逆序交換,直到最大的數沉到最后;然后再次從頭開始,將前二個元素比較,重復過程,直到第二大的元素沉到倒數第二個位置,如此循環,完成排序過程[5]。   起泡排序的平均時間復雜度為。如果原序列為正序序列,循環比較還是要進行到底,需要N-1次比較,如果待排序元素龐大,會產生不必要的浪費。   改進方法:以標準元素為中心,按大小前后列隊,再將前后隊伍以此方法按大小列隊,最終完成排序。排序過程為:選擇待排序序列第一個元素作標準,將其他元素與其比較,小的列前面,大的列后面,然后分別在前后部分內部按上述方法列隊,最終完成所有元素的遞增排序,改進后的起泡排序可以叫列隊排序。   本算法主要語句如下:   I

總結

以上是生活随笔為你收集整理的c语言排序算法 应用与实现,基于C语言排序算法改进与应用.doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 18成人在线观看 | 午夜免费播放观看在线视频 | 国产精品一区二三区 | 黄色网战在线观看 | 亚洲欧美综合一区 | 免费色播 | 男人的天堂va | 国产欧美精品国产国产专区 | 亚洲一二三四 | 国产做爰视频免费播放 | 欧美精品一级在线观看 | 日本丰满熟妇videossex一 | 欧美资源 | 性猛交╳xxx乱大交 偷偷操不一样的久久 | 日韩欧美一区二区在线 | 77久久| 青青草免费在线视频 | 精品丰满少妇一区二区三区 | 日本偷拍一区 | 欧美黄色一级生活片 | 日本人视频69式jzzij | 成人勉费视频 | 老子午夜影院 | 免费国产高清 | 已满十八岁免费观看全集动漫 | 99视频一区 | 国产男人搡女人免费视频 | 国产清纯在线 | 爱爱爱爱网站 | 在线免费观看欧美大片 | 日本极品喷水 | www.色婷婷| 激情av在线播放 | 麻豆亚洲 | 五月婷婷丁香网 | 我的丝袜美腿尤物麻麻 | 日韩av中文在线 | 黄色一节片| 亚洲永久免费视频 | 欧美 日韩 国产一区 | 亚洲a毛片 | 色中文字幕在线观看 | 91精东传媒理伦片在线观看 | 欧美精品videosex极品 | 国产制服91一区二区三区制服 | 色综合91 | 久久精品无码专区 | 成人在线视频免费观看 | 欧美99久久精品乱码影视 | 天堂网avav| 日韩久久综合 | 99久久99久久久精品棕色圆 | 九热这里只有精品 | 男男做性免费视频网 | 国产欧美精品一区二区在线播放 | 亚洲偷偷 | 国产免费久久 | 久久精品国产亚洲AV高清综合 | 黄色成人在线播放 | 四虎免看黄 | 无码国内精品人妻少妇蜜桃视频 | 天天色天天射天天干 | 亚洲春色在线观看 | 欧美aa级| 风间由美一区 | 蜜臀av粉嫩av懂色av | 色中文字幕在线观看 | 亚洲经典在线观看 | 精品国产网 | 姐姐av| 久国久产久精永久网页 | 亚洲AV成人无码网站天堂久久 | 天天操天天操天天干 | 激情婷婷六月 | 熟女av一区二区三区 | 一区二区日韩在线观看 | 日韩av在线资源 | 亚洲第一成年网 | 日韩欧美国产片 | 国产欧美精品一区二区在线播放 | 可以在线观看的黄色 | 久久亚洲精品国产精品黑人v | 欧美日韩在线一区二区 | 女人18毛片毛片毛片毛片区二 | 黄色网址视频 | 亚洲美女爱爱 | 99久久精品免费看国产交换 | 日本手机看片 | 天堂а√在线最新版中文在线 | 九九九热| 国产精品免费看片 | 九九热精品视频在线 | 麻豆成人久久精品一区二区三区 | 三叶草欧洲码在线 | 好吊色视频一区二区 | 免费国产一级 | 痴女扩张宫交脱垂重口小说 | 天天躁日日躁狠狠躁av麻豆男男 | 特黄大片又粗又大又暴 |