<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 二維數(shù)組如何進(jìn)行冒泡排序

          二維數(shù)組如何進(jìn)行冒泡排序

          作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
          寫的代碼可能有綴余的地方,不過是為了好理解,有些地方可以簡(jiǎn)化,但是簡(jiǎn)化之后可能對(duì)于剛開始學(xué)c語言的通來說不好理解。
          一維數(shù)組進(jìn)行冒泡排序很簡(jiǎn)單,二維數(shù)組冒泡排序有點(diǎn)麻煩,不過只要你會(huì)了一維數(shù)組冒泡排序看這些內(nèi)容很簡(jiǎn)單。其實(shí)可以直接對(duì)二維數(shù)組進(jìn)行冒泡,但是為了好理解,我使用了數(shù)組的轉(zhuǎn)換,這個(gè)是我花了一個(gè)小時(shí)研究出來的,當(dāng)同學(xué)問我怎么對(duì)二維數(shù)組進(jìn)行冒泡,雖然以前沒做過,但是當(dāng)時(shí)我的腦海中就有了這個(gè)思路,不過在實(shí)際的編寫代碼過程中問題不是我想的那么一帆風(fēng)順。數(shù)組間的轉(zhuǎn)換就是一個(gè)問題,所以對(duì)二維數(shù)組進(jìn)行冒泡排序之前,我又抽時(shí)間研究了數(shù)組轉(zhuǎn)換問題,最后將它們整合在一起,于是工作完成!
          思路以及注意點(diǎn)、說明我都加在了代碼旁邊的注釋里,好好悟悟!
          此日志對(duì)于不懂c語言的朋友們來說絕對(duì)是天書,看起來很枯燥,可以瞄一眼直接飄過??!
          /*基本思路就是將二維數(shù)組轉(zhuǎn)換成一維數(shù)組,再對(duì)一維數(shù)組進(jìn)行冒泡排序,
          再將排好序的一維數(shù)組轉(zhuǎn)換成二維數(shù)組 ,最后按照兩行三列的格式輸出即可。難點(diǎn)就是在于
          數(shù)組間的轉(zhuǎn)換問題*/
          #include
          main()
          {
          int a[2][3]={3,2,1,6,5,4};
          int i,j,k,b[6];
          int temp;
          int y,z; //一維數(shù)組轉(zhuǎn)換成二維數(shù)組時(shí)候用到
          k=0; //初始化 k 的值
          //轉(zhuǎn)換為一維數(shù)組
          for(i=0;i<2;i++)
          {
          for(j=0;j<3;j++)
          {
          b[k]=a[i][j];
          k++;
          }
          }
          //對(duì)一維數(shù)組 b[6] 進(jìn)行冒泡排序
          for(j=0;j<5;j++)
          {
          for(i=0;i<5-j;i++)
          {
          if(b[i]>b[i+1])
          {
          temp=b[i];
          b[i]=b[i+1];
          b[i+1]=temp;
          }
          }
          }
          //再將排好序的一維數(shù)組 b[6]轉(zhuǎn)換成二維數(shù)組 a[2][3],并按一定格式輸出
          //重新定義一個(gè)變量 y z,是為了避免變量之間的沖突
          for(y=0;y<2;y++)
          {
          for(z=0;z<3;z++)
          {
          a[y][z]=b[y*3+z]; //這一步要好好理解,為什么是 y*3+z ?很關(guān)鍵的一步
          }
          }
          //輸出 兩行三列的二維數(shù)組
          for(i=1;i<=2;i++)
          {
          for(j=1;j<=3;j++)
          {
          printf("%3d",a[i-1][j-1]);
          if(j%3==0) //當(dāng)滿足每行三個(gè)數(shù)時(shí)就換行
          printf("");
          }
          }
          }
          如果你能真正的對(duì)我寫的代碼理解透徹,那么一維數(shù)組冒泡排序、序、數(shù)組間的轉(zhuǎn)換那就沒問題了?。?!
          還是那句老話:多看、多學(xué)、多思!這是我學(xué)編程的指導(dǎo)!


          關(guān)鍵詞: 二維數(shù)組冒泡排

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();