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

        ?

        簡單選擇排序算法的改進及分析

        2009-09-26 09:37:42張憶文
        新媒體研究 2009年18期
        關鍵詞:分析

        張憶文 譚 霽

        [摘要]排序是計算機程序設計的重要操作,經(jīng)典的排序包括:冒泡排序、選擇排序、插入排序等等;以簡單選擇排序算法為基礎,對其進行改進,通過分析得出與之具有同樣行之有效、甚至更高的排序效率。

        [關鍵詞]簡單選擇排序 改進算法 分析

        中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0920077-01

        排序是將數(shù)據(jù)元素的任一序列,重新排列成一個關鍵字有序的序列。基于比較和移動的排序算法具有通用性,包括插入排序、選擇排序、交換排序、歸并排序、計數(shù)排序[1]。各種排序的算法各具有優(yōu)缺點,但就其全面性能而言,很難提出一種被公認的最好的方法。評價算法主要考慮其時間復雜度、空間復雜度、穩(wěn)定性等。筆者通過對簡單選擇排序算法進行改進,使其交換或移動的次數(shù)減少,從而提高效率。

        一、簡單選擇排序[2]

        簡單選擇排序的基本思想:對待排序的序列進行若干趟處理,通過n-i次關鍵字的比較,從n-i+1個記錄中選出關鍵字最小的記錄和第i(1≤i≤n)個記錄進行交換,這樣一趟處理就能確定一個數(shù)的位置,對n個數(shù)如果確定n-1個數(shù)的位置,則這n個數(shù)就排序成功。

        (一)主要代碼片段

        for(i=0;i

        {for(j=i+1;j

        if(a[i]>a[j])

        {t=a[i];a[i]=a[j];a[j]=t;}}

        (二)算法分析

        時間復雜度:簡單選擇排序過程中,當待排序序列為正序時,移動的次數(shù)最少為0次;當為逆序時最大為3n(n-1)/2;然而無論記錄是否有序所需比較的次數(shù)都為n(n-1)/2;所以時間復雜度為O(n2)。

        二、改進算法一

        簡單選擇排序在每趟中都選一個最小的關鍵字確定其正確的位置,上述算法只要相鄰元素逆序就要交換(移動);可以附設一個變量記錄其最小值,然后在與最小值交換,這樣可以大大的減少移動的次數(shù)。

        (一)主要代碼片段

        for(i=0;i

        {k=i;

        for(j=i+1;j

        if(a[i]>a[j])

        k=j;

        if(k!=i)

        {t=a[i];a[i]=a[j];a[j]=t;}}

        (二)算法分析

        時間復雜度:當待排序序列為正序時,移動的次數(shù)最少為0次;當為逆序時最大為3(n-1),這比3n(n-1)/2大大的減少;比較的次數(shù)為n(n-1)/2;所以時間復雜度為O(n2)。

        三、改進算法二

        簡單的選擇排序在一趟排序的過程只能確定一個元素的正確位置,現(xiàn)改進為在一趟的排序過程中確定兩個元素的位置,即一個最大值和一個最小值。對一個待排序序列應比較第一個元素和最后一個元素的值,若逆序就交換,這樣可以保證第一個元素比最后一個元素小;將2到n-1個元素依次同第一個元素比較;若逆序則交換;否則和最后一個元素比較若逆序則交換;這樣在一趟排序過程中就確定兩個元素的位置;對剩余的n-2個元素,重復上述過程直至全部有序[3]。

        (一)主要代碼片段

        for(i=1;i<=n/2;i++)

        {if(a[i-1]>a[n-i])

        {t=a[i-1];a[i-1]=a[n-i];a[n-i]=t;}

        for(j=i;j

        if(a[i-1]>a[j])

        { t=a[i-1];a[i-1]=a[j];a[j]=t;}

        else if(a[j]>a[n-i])

        {t=a[j];a[j]=a[n-i];a[n-i]=t;}}

        (二)算法分析

        時間復雜度:當待排序序列為正序時,移動的次數(shù)最少為0次;最壞時所需的移動次數(shù)為n-1,大大的低于簡單選擇排序的3n(n-1)/2;從比較次數(shù)來看,循環(huán)的次數(shù)減少一半,所以比較的次數(shù)為n(n-1)/4相對與簡單選擇排序也有所降低。 所以時間復雜度為O(n2)。

        四、改進算法三

        利用分治法的思想將第一個數(shù)和最后一個數(shù)比較若逆序,則交換;第二個數(shù)和倒數(shù)第二個數(shù)比較若逆序,則交換;直至第i個數(shù)和第i個數(shù)比較;將待排序序列分成兩部分,將小者放在前半部分,大的放在后半部分,然后再在前半部分選出最小值;后半部分選出最大值;對剩余的n-2個數(shù)做同樣的處理,直至全部有序。

        (一)主要代碼片段

        for(i=0,j=n-1;i<=j;i++,j--)

        {while(i

        if(a[i]>a[j])

        {t=a[i];a[i-]=a[j];a[j]=t;i++;j--}

        k=i-1;static m=0;static l=n-1;

        for(t=m;t

        if(a[t]>a[t+1])

        { r=a[t];a[t]=a[t+1];a[t+1]=r;}

        for(t=k;t

        if(a[t]>a[t+1])

        {r=a[t];a[t]=a[t+1];a[t+1]=r;}

        m++;l--;}

        (二)算法分析

        第一趟在n個元素的序列比較n/2(n為偶數(shù))次或為(n+1)/2次(n為奇數(shù));為討論方便取n為偶數(shù);在前半部分選出最小值要比較n/2-1次;后半部分選出最大值需要比較n/2-1次;所以在一趟排序確定兩個元素的正確位置要3n/2-2次。在剩余的n-2個元素中確定兩個元素的正確位置需要3(n-2)/2-2次;以此類推可知最后一趟剩余的兩個元素的比較次數(shù)為1次;所以總的比較次數(shù)為3n(n-2)/8;這比簡單選擇排序也有所降低。當待排序序列為正序時,移動的次數(shù)最少為0次;最壞時所需的移動次數(shù)為9n(n-2)/8比簡單選擇排序也有所降低。

        五、各種排序的比較

        六、結束語

        各種改進方法的思想和簡單的選擇排序基本一致;都是在簡單選擇排序的基礎上加以改進;使之成為一種更簡單,效率更高的算法。

        參考文獻:

        [1]嚴蔚敏等,數(shù)據(jù)結構(C語言版)[M].北京:清華大學出版社,2005.7.

        [2]潭浩強,C程序設計[M].北京:清華清華大學出版社,1999.4.

        [3]何洪英,雙向選擇排序算法的實現(xiàn)及性能研究,成功(教育),2007.9.

        作者簡介:

        張憶文,男,本科生,長江師范學院數(shù)學與應用數(shù)學專業(yè);譚霽,男,本科生,長江師范學院數(shù)學與應用數(shù)學專業(yè)。

        猜你喜歡
        分析
        禽大腸桿菌病的分析、診斷和防治
        隱蔽失效適航要求符合性驗證分析
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        電力系統(tǒng)及其自動化發(fā)展趨勢分析
        經(jīng)濟危機下的均衡與非均衡分析
        對計劃生育必要性以及其貫徹實施的分析
        GB/T 7714-2015 與GB/T 7714-2005對比分析
        出版與印刷(2016年3期)2016-02-02 01:20:11
        網(wǎng)購中不良現(xiàn)象分析與應對
        中西醫(yī)結合治療抑郁癥100例分析
        偽造有價證券罪立法比較分析
        久久这里只有精品9| 中文字幕人妻在线中字| 97精品一区二区视频在线观看| 暖暖免费 高清 日本社区在线观看| 美女裸体无遮挡免费视频国产| 在线观看视频亚洲一区二区三区| аⅴ天堂中文在线网| 久久国产热这里只有精品 | 成人av一区二区亚洲精| 日本xxxx色视频在线观看| 图片区小说区激情区偷拍区| 任你躁国产自任一区二区三区| 日韩av他人妻中文字幕| 国产成人精品一区二区20p| 久久久久久国产精品免费免费男同 | 国产在线看不卡一区二区| 日本高清一区二区不卡| а天堂8中文最新版在线官网| 装睡被陌生人摸出水好爽| 国产日韩三级| 在线观看一区二区三区在线观看| 国内最真实的xxxx人伦| 熟妇与小伙子matur老熟妇e| 国产精品久久一区性色a| 日韩美女亚洲性一区二区| 朝鲜女人大白屁股ass| 久久久久中文字幕精品无码免费 | 青青草中文字幕在线播放| 人妻丰满熟妇无码区免费| 亚洲欧美在线播放| 国内专区一区二区三区| 国产18禁黄网站免费观看| 日韩成人大屁股内射喷水| 手机色在线| 久久午夜av一区二区| 免费va国产高清大片在线| 午夜性刺激免费视频| 一区两区三区视频在线观看| 狠狠色欧美亚洲狠狠色www| 国产中老年妇女精品| 99在线无码精品秘 入口九色|