色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

          作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏
          寫(xiě)的代碼可能有綴余的地方,不過(guò)是為了好理解,有些地方可以簡(jiǎn)化,但是簡(jiǎn)化之后可能對(duì)于剛開(kāi)始學(xué)c語(yǔ)言的通來(lái)說(shuō)不好理解。
          一維數(shù)組進(jìn)行冒泡排序很簡(jiǎn)單,二維數(shù)組冒泡排序有點(diǎn)麻煩,不過(guò)只要你會(huì)了一維數(shù)組冒泡排序看這些內(nèi)容很簡(jiǎn)單。其實(shí)可以直接對(duì)二維數(shù)組進(jìn)行冒泡,但是為了好理解,我使用了數(shù)組的轉(zhuǎn)換,這個(gè)是我花了一個(gè)小時(shí)研究出來(lái)的,當(dāng)同學(xué)問(wèn)我怎么對(duì)二維數(shù)組進(jìn)行冒泡,雖然以前沒(méi)做過(guò),但是當(dāng)時(shí)我的腦海中就有了這個(gè)思路,不過(guò)在實(shí)際的編寫(xiě)代碼過(guò)程中問(wèn)題不是我想的那么一帆風(fēng)順。數(shù)組間的轉(zhuǎn)換就是一個(gè)問(wèn)題,所以對(duì)二維數(shù)組進(jìn)行冒泡排序之前,我又抽時(shí)間研究了數(shù)組轉(zhuǎn)換問(wèn)題,最后將它們整合在一起,于是工作完成!
          思路以及注意點(diǎn)、說(shuō)明我都加在了代碼旁邊的注釋里,好好悟悟!
          此日志對(duì)于不懂c語(yǔ)言的朋友們來(lái)說(shuō)絕對(duì)是天書(shū),看起來(lái)很枯燥,可以瞄一眼直接飄過(guò)??!
          /*基本思路就是將二維數(shù)組轉(zhuǎn)換成一維數(shù)組,再對(duì)一維數(shù)組進(jìn)行冒泡排序,
          再將排好序的一維數(shù)組轉(zhuǎn)換成二維數(shù)組 ,最后按照兩行三列的格式輸出即可。難點(diǎn)就是在于
          數(shù)組間的轉(zhuǎn)換問(wè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ì)我寫(xiě)的代碼理解透徹,那么一維數(shù)組冒泡排序、序、數(shù)組間的轉(zhuǎn)換那就沒(méi)問(wèn)題了?。?!
          還是那句老話:多看、多學(xué)、多思!這是我學(xué)編程的指導(dǎo)!


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

          評(píng)論


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

          關(guān)閉