亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于c語言對插入排序算法的分析研究

        2019-01-03 02:00:38王佳林
        科技風(fēng) 2019年35期

        王佳林

        摘要:數(shù)據(jù)處理是計算機(jī)編程中經(jīng)常會遇到的問題,而數(shù)據(jù)排序又是數(shù)據(jù)處理中的重要組成部分,其中排序算法是數(shù)據(jù)排序中的核心技術(shù)。在很多情況下,排序算法決定著一個程序的執(zhí)行效率,在實際的編程開發(fā)中如何根據(jù)具體的問題環(huán)境選擇合適有效的排序算法就顯得尤為重要。本文針對插入排序算法展開研究,對其排序算法原理和特點進(jìn)行了分析,希望能給相關(guān)領(lǐng)域的學(xué)者帶來幫助。

        關(guān)鍵詞:c語言;排序算法;直接插入排序;二分查找;希爾排序

        隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)量爆炸式增長,數(shù)據(jù)排序越顯重要。排序好的數(shù)據(jù)在進(jìn)行各種操作時都會更加便捷,處理效率也會更高效。排序算法是數(shù)據(jù)排序的靈魂,決定著所用時間的多少,以及所占空間的大小。下面對基于c語言的插入排序進(jìn)行詳細(xì)的分析研究。

        一、插入排序的基本原理及分類

        (一)插入排序的基本原理

        插入排序是內(nèi)部排序算法的一種,其基本原理是在一次插入操作中,按照排序碼的大小,將一個待排序元素插入到一組有序元素的適當(dāng)位置上去,直到元素全部插入為止。

        (二)插入排序的分類

        在執(zhí)行具體插入操作時,根據(jù)插入方法的不同,主要分為三種插入排序算法,分別是直接插入排序、帶二分查找的直接插入排序和希爾排序。下面對這三種插入排序算法進(jìn)行詳細(xì)分析。

        二、直接插入排序(Straight Insertion Sort)

        (一)直接插入排序的基本思想

        直接插入排序的基本思想是在一組待排序的元素中,按一定的順序取出一個元素,將這個元素按排序碼的大小插入到排好序了的元素序列中,進(jìn)而得到一個新的有序的總元素數(shù)目加一的有序表,直到所有的元素都插入到這個有序表中為止。

        (二)直接插入排序詳細(xì)過程及c語言程序代碼

        下面舉例說明,假設(shè)有一個N=6個的待排序元素,排序碼相同的用*加以區(qū)分。其中的臨時變量temp起暫存的作用。

        (三)直接插入排序算法的性能分析

        時間復(fù)雜度分析:

        初始元素的序列是是影響直接插入排序效率的主要因素,根據(jù)初始元素序列的不同其時間復(fù)雜度有很大區(qū)別。

        (1)初始序列是順序排列時,比較N1次即可完成排序,時間復(fù)雜度O(N)。

        (2)初始序列是逆序排列時,需比較N*(N1)/2次,時間復(fù)雜度O(N^2)。

        (3)初始序列雜亂無序時,平均時間復(fù)雜度O(N^2)。

        空間復(fù)雜度分析:

        在直接插入排序中,臨時變量temp暫存待插入元素,空間復(fù)雜度O(1)。

        算法穩(wěn)定性分析:

        所謂算法穩(wěn)定性指的是如果待排序記錄中有重復(fù)元素,在排序后這些元素的相對位置如果保持不變,那么這個排序算法就是穩(wěn)定的。反之則不穩(wěn)定。在圖(a)中容易發(fā)現(xiàn)排序碼相同的記錄的相對位置沒有變化,可見直接插入排序算法是穩(wěn)定的排序算法。

        (四)直接插入排序的改進(jìn)

        直接插入排序算法在進(jìn)行位置查找操作中可以進(jìn)行性能改進(jìn),那就是在尋找合適的插入位置時,使用二分查找算法,但插入操作的基本原理不變,這樣就可以大大減少元素比較次數(shù),提高算法效率。這種改進(jìn)之后的算法又叫帶二分查找的直接插入排序。

        三、希爾排序(Shell Sort)

        (一)希爾排序基本原理

        希爾排序是在直接插入排序的基礎(chǔ)上的一種改進(jìn),實際上是將待排序序列分組進(jìn)行直接插入排序,在分組時會出現(xiàn)增量這個概念,增量其實就是同一組數(shù)據(jù)中相鄰元素的下標(biāo)相隔距離。希爾排序利用了在數(shù)據(jù)量小、元素基本有序時直接插入排序的效率高的特點,大大提高了排序的效率。

        (二)希爾排序c語言程序代碼

        (三)希爾排序算法性能分析

        時間復(fù)雜度分析:

        希爾排序算法的時間復(fù)雜度分析較復(fù)雜,整個過程中元素的比較次數(shù)和移動次數(shù)因所選擇的增量的不同而有較大差異。整體上來看希爾排序的時間復(fù)雜度是O(N*logN)。步長gap不同時間復(fù)雜度會受影響,根據(jù)現(xiàn)有研究隨著步長變化希爾排序時間復(fù)雜度在O(N*logN)與O(N^2)之間,具體詳細(xì)的時間復(fù)雜度與步長gap的關(guān)系還在研究中。

        希爾排序算法是不穩(wěn)定的,這一點在其程序代碼中也能發(fā)現(xiàn),在進(jìn)行分組時兩個排序碼相同的元素的相對位置可能發(fā)生變化。

        四、結(jié)語

        在這個數(shù)據(jù)時代中,數(shù)據(jù)處理是經(jīng)常會遇到的問題,數(shù)據(jù)排序是數(shù)據(jù)處理中很重要的一環(huán),研究排序算法具有重要的意義。本文主要研究了基于c語言的插入排序算法,并對三種插入排序算法進(jìn)行了詳細(xì)的分析。明確各種排序算法的適用條件,熟練掌握算法思想,針對實際問題靈活運用,有助于我們更好的完成數(shù)據(jù)處理工作。

        參考文獻(xiàn):

        [1]李晶.直接插入排序算法分析與實現(xiàn)[J].中國科技信息,2007(24):347+349.

        [2]劉模群.排序算法時間復(fù)雜度研究[J].軟件導(dǎo)刊,2012,11(06):3538.

        亚洲AV无码日韩综合欧亚| 人人妻人人澡人人爽人人精品97| 韩国v欧美v亚洲v日本v| 中文字幕日产人妻久久| 蜜桃码一区二区三区在线观看| 久久久久久久久无码精品亚洲日韩 | 精品国精品国产自在久国产应用| 久久青草国产免费观看| 国产在线观看女主播户外| 国产成人综合日韩精品无码| 久久久精品人妻一区二区三区| 国产精品一区二区三区精品| 精品亚洲一区二区在线观看| 欧洲乱码伦视频免费| 亚洲18色成人网站www| 国产乱人视频在线观看播放器 | 无码不卡av东京热毛片| 亚洲天堂中文| 精品国产3p一区二区三区| 丰满人妻熟妇乱又仑精品| 国产精品久久久久久久免费看| 久久中文字幕日韩精品| 久久久亚洲成年中文字幕| 欧美人与动性xxxxx杂性| 亚洲av无码片一区二区三区| 大肥婆老熟女一区二区精品| 少妇连续高潮爽到抽搐| 欧美日韩精品一区二区三区高清视频 | 成品人视频ww入口| 久久欧美与黑人双交男男| 国产亚洲曝欧美不卡精品| 日本国产精品久久一线| 免费无遮挡禁18污污网站| 国产一区二区三区啪| 国产在线观看黄片视频免费| 亚洲av日韩av永久无码下载| 少妇太爽了在线观看| 久久免费精品视频老逼| 亚洲国产精品久久久av| 日日碰狠狠躁久久躁9| 精品久久久久久国产潘金莲|