• 
    

    
    

      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ù)組的歷程
      东乡族自治县| 乌恰县| 习水县| 乐清市| 北海市| 宣汉县| 绥滨县| 勐海县| 浦城县| 辽阳县| 潞城市| 九寨沟县| 景泰县| 石屏县| 广宗县| 贞丰县| 上饶县| 阳原县| 兖州市| 德安县| 甘泉县| 阳春市| 舒兰市| 达拉特旗| 泰宁县| 镇巴县| 武安市| 黄石市| 通化市| 巴彦淖尔市| 集安市| 永寿县| 怀集县| 普兰店市| 托克托县| 喀什市| 杂多县| 渭源县| 新郑市| 乌鲁木齐市| 文昌市|