• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一個非常簡單的排序程序

    2011-11-14 03:45:54華晶
    中國科技信息 2011年24期
    關(guān)鍵詞:大數(shù)數(shù)組吉林

    華晶

    北華大學(xué)基礎(chǔ)醫(yī)學(xué)院生物醫(yī)學(xué)工程教研室,吉林 吉林 132013

    一個非常簡單的排序程序

    華晶

    北華大學(xué)基礎(chǔ)醫(yī)學(xué)院生物醫(yī)學(xué)工程教研室,吉林 吉林 132013

    介紹一非常簡單的排序應(yīng)用程序。

    排序;排序程序;VB程序

    把n個任意排列的一組數(shù)排序,轉(zhuǎn)變?yōu)閺男〉酱蠡驈拇蟮叫∨帕?,這在數(shù)據(jù)處理中(如統(tǒng)計(jì)學(xué)處理中的求區(qū)分度等)很有用。實(shí)際中,有人曾提出過或簡單些或復(fù)雜些的排序程序。

    筆者提出一個非常簡單的排序程序。

    排序思想:比如,把n個任意排列的一組數(shù)轉(zhuǎn)變從大到小排列。先從排列中選出最大的數(shù),作為排列的第一個數(shù);然后再從余下的數(shù)中選出最大的數(shù)(次最大),作為排列的第二個大數(shù)(次最大);……,如此進(jìn)行下去,直到結(jié)束,則獲取從大到小的排列。

    做法如下:以VB代碼排序程序?yàn)槔?/p>

    1.賦值給定義的數(shù)組t(n),如把任意排列的六個數(shù)4,5,2,3,1,7賦數(shù)組t (n)后,可得t(1)=4,t(2)=5, t(3)=2, t(4) =3, t(5) =1,t(6)=7;

    2.選一個比數(shù)組中的數(shù)都小的數(shù),用變量代碼tx表示之,如令tx=-100;3.編下列二重循環(huán)作排序主程序,

    選大數(shù)總的做法是:第一重循環(huán) i的數(shù)值,對應(yīng)各次排列首位數(shù)的位置,伴隨i=1到6的變化,在第二重循環(huán)中,在j=i到6循環(huán)中,選出各個最大數(shù)tx= t(j),依次標(biāo)記為t(i) = tx(i=1,2,3,4,5,6)。在j=i到6的循環(huán)中,每當(dāng)選出大于相應(yīng)首位數(shù)的大數(shù),則把該大數(shù)tx = t(j)與此時排在數(shù)組相應(yīng)首位的數(shù)t(i)互換位置,其它數(shù)位置不動。

    分析上述主程序排序過程:以對數(shù)組4,5,2,3,1,7作從大到小排列為例。

    第一重循環(huán) i=1時,排在首位的數(shù)是t(i) = t(j)= t(1) = 4。若各條件t(j) > tx成立,則由第二重循環(huán)選出最大數(shù)tx =t(j) = t(6) =7,記為t(i) = t(1) = 7。

    選出最大數(shù)t(i) =t(1)=7的過程如下:

    當(dāng)?shù)诙匮h(huán)首次排序j=i=1時,有t (j)=t(1)=4(此時首位數(shù)是4),然后用條件語句

    作判斷, 條件 t(j) > tx 成立,即 t(j) =t(1)=4 > tx = -100 成立,則執(zhí)行tx = t(j)、t(j) = t(i) 及 t(i) = tx,于是由tx = t(j)得到從tx=-100 轉(zhuǎn)換為tx= t(j)= t (1)=4,tx=4為初次選出的大數(shù)。之后執(zhí)行位置互換 t(j) = t(i) 及t(i) = tx,即由t(j) = t(i)知, t(j) = t(1)=4 與t(i) = t(1) =4互換位置。但因此時t(j) = t(1)與t(i) = t(1)數(shù)值相同(均為4),屬同一位置的數(shù),可見該次排序中,數(shù)組中原先各數(shù)位置沒變,仍為4,5,2,3,1,7(請記住此時tx=4);

    每次第二重循環(huán)開始進(jìn)行首次排序(j=i)時,數(shù)組均維持前邊的排列不變。

    當(dāng)?shù)诙匮h(huán)中的j=2時,有t(j)=t(2) =5,條件t(j) > tx成立,即t(j) = t(2) =5> tx=4成立,于是選出大數(shù)tx= t(j)=t (2)=5。之后執(zhí)行位置互換t(j) = t(i) 及 t (i) = tx,由t(j) = t(i) 知,t(j) = t(2)=5被前次t(i) = t(1) =4替換,變?yōu)閠(j) = t (2) =4,于是前次排列數(shù)組中第二個數(shù)5被換為原排在首位的數(shù)4。由后一轉(zhuǎn)換t(i) = tx知,選出的大數(shù)t(i) = t(1)= tx=5被換到首位,形成排列中第二個數(shù)5與原首數(shù)4的位置互換,其它數(shù)的原位置不變,于是原排列4,5,2,3,1,7變?yōu)?,4,2,3,1,7(請記住此時tx=5);

    可見,滿足條件t(j) > tx則作位置互換,選出的大數(shù)被換到此刻數(shù)組首位。

    當(dāng)?shù)诙匮h(huán)j=3,4,5時,有t(j)= t (3)=2,t(j)= t(4)=3、t(j)= t(5)=1條件t(j) > tx=5不成立,故不執(zhí)行t(j) = t(i) 及t (i) = tx位置互換,數(shù)組仍為前次排列5,4,2,3,1,7;

    可見,不滿足條件t(j) > tx時,各數(shù)排列位置不變,維持前一次排列。

    當(dāng)?shù)诙匮h(huán)j=6時,有t(j)= t(6)=7,條件t(j) > tx成立,即t(j)= t(6)=7> tx=5成立,

    于是執(zhí)行tx= t(j)、t(j) = t(i) 及 t(i) = tx。由tx= t(j)選出大數(shù)tx= t(j)= t(6) =7。作位置互換t(j) = t(i) 及 t(i) = tx,有t(j)= t(6)=7被換到前次排列t(i) = t(1) = tx=5的位置(首位),而前次排在首位的數(shù)5被換到t(j)= t(6)的位置,排列5,4,2,3,1,7變?yōu)?,4,2,3,1,5。

    至此,第一重循環(huán)第一步(i=1)結(jié)束,選出最大數(shù)7,并用此時t(i) = t(1) = tx=7標(biāo)記。

    第一重循環(huán)進(jìn)行第二步,即 i=2時,重定tx=-100,并仍由第二重循環(huán)選出數(shù)組中的大數(shù),即選出原數(shù)組中的第二最大數(shù)tx =5,并記為t(i) = t(2)= 5。

    因此時第二重循環(huán)由j=i=2,取到j(luò)=6,故第二大數(shù)是去掉前次排在首位的大數(shù)7以后的數(shù)組中選,即在4,2,3,1,5中選,故此數(shù)組的首數(shù)是4。

    第二大數(shù)5選出過程如下:

    當(dāng)?shù)诙匮h(huán)j=2時,條件t(j) = t(2) =4 > tx=-100成立,執(zhí)行tx=t(j)、 t(j) = t(i)及t(i) = tx。此時選出大數(shù)tx=4,類似上述i=1時的分析,故排列4,2,3,1,5沒變,總排列仍是7,4,2,3,1,5。其實(shí),這是第二重循環(huán)第二次作首次排列,故排列應(yīng)維持前次排列不變。

    當(dāng)j=3,4,5時,分別有t(j)= t(3) =2,t(j)= t(4) =3,t(j)= t(5) =1,條件t(j) > tx=4不成立,排列不變(請記住此時仍是tx=4)。

    當(dāng)j=6時,有t(j)= t(6)=5,條件t(j) = t(6)=5> tx=4成立,選出大數(shù)tx= t(j) = t(6)=5。之后作位置互換,由t(j) = t(i)知,t(j)= t(6)= 5被換為前次t(i) = t(2)= tx=4,即換為t(j)= t(6)= 4,由t(i) = tx知,t(i) = t(2)= tx =5(此次tx = 5),于是有5與排在首數(shù)4互換位置,排列由4,2,3,1,5變?yōu)?,2,3,1,4,總排列由7,4,2,3,1,5變?yōu)?,5,2,3,1,4。

    至此,第一重循環(huán)第二步(i=2)結(jié)束,選出次大數(shù)5,并用此時t(i) = t(2) = tx=5標(biāo)記。

    如此進(jìn)行下去,每當(dāng)滿足條件t(j) > tx時,就有位置互換,把各次選出的最大數(shù)換到前邊相應(yīng)的各個次最大數(shù)的位置,直到取完i=1到6及j=i到6,完成兩重循環(huán),獲取從大到小的排列7,5,4,3,2,1。

    源程序如下:

    For i=1 To 6: Print t(i) , : Next i ‘顯示從大到小排列后的數(shù)組

    運(yùn)行程序結(jié)果:顯示出原排列為:4,5,2,3,1,7

    從大到小排序?yàn)椋?,5,4,3,2,1

    由上述知,選最大數(shù)tx = t(j)及排序動作t(j) = t(i) 及 t(i) = tx只有滿足條件t(j) > tx時才發(fā)生,且只有互換位置動作,因此,程序運(yùn)行過程的步驟少。

    此排序程序比某些排序程序(有很多)運(yùn)行步驟少得多、簡單得多。

    改變程序中條件語句的大于號為小于號,并令tx=100, 可得從小到大排序。

    [1]劉娜,鄭楠楠.插入類排序算法的改進(jìn)及實(shí)際應(yīng)用.沈陽大學(xué)學(xué)報2008;2:14~18

    [2]吳奇英.計(jì)算機(jī)程序設(shè)計(jì)中的排序方法.交通科技與經(jīng)濟(jì)2007;4:74~76

    [3]姜曉銘主編.Visual Basic 6.0中文版編程指南.第1版:中國石化出版社2006;5

    10.3969/j.issn.1001-8972.2011.24.047

    華晶,工程碩士,實(shí)驗(yàn)師。

    猜你喜歡
    大數(shù)數(shù)組吉林
    巧記“大數(shù)的認(rèn)識”
    13.吉林卷
    JAVA稀疏矩陣算法
    電腦報(2022年13期)2022-04-12 00:32:38
    “大數(shù)的認(rèn)識”的診斷病歷
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    電腦報(2020年24期)2020-07-15 06:12:41
    吉林卷
    吉林卷
    超級英雄教你大數(shù)的認(rèn)識
    生活中的大數(shù)
    尋找勾股數(shù)組的歷程
    盐山县| 石嘴山市| 德钦县| 阿鲁科尔沁旗| 张北县| 德钦县| 松阳县| 兴海县| 安顺市| 靖江市| 大姚县| 玉林市| 双辽市| 历史| 海安县| 准格尔旗| 河曲县| 浮山县| 文水县| 新竹市| 叙永县| 曲沃县| 鸡东县| 永嘉县| 柳江县| 伊宁市| 宁河县| 台南市| 措美县| 岑巩县| 利辛县| 北京市| 崇仁县| 德钦县| 泸溪县| 唐河县| 滦南县| 六枝特区| 祥云县| 定结县| 通榆县|