如何將數組中的數字按照從小到大的順序排列???


經過視頻的學習,總結了一下,大神們請指教。。。。

如果要將數組中的數字按照從小到大的順序排列。

完成思路:將最小的數字放在數組的第一項,將第二小的數組放在第二項,一直重復,知道完成。

那么如何將最小的數字放在數組索引為0的位置呢?

示例:

 

for(int j = i+1;j  < arrays.Length;j++)

{

     if (arrays[0] > arrays[j])

     {    

             int temp = arrays[0];

             arrays[0] = arrays[j];

             arrays[j] = temp;

      }

}

實現方法:把第一個位置的數字拿出來依次和后面位置的數字進行比較,如果后面位置的數字大,則交換位置。

代碼實現分析:重復的動作,如果索引為0的數字比索引為j的數字大,則交換。j的取值范圍是1-arrays.Length-1.

int i = ?;//當前處理的數組索引位

for(int j = i + 1;j  < arrays.Length;j++)

{

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

     {    

             int temp = arrays[i];

             arrays[i] = arrays[j];

             arrays[j] = temp;

      }

}

由於示例中的0表示為當前處理的數組索引,則提出來形成一個變量i,變量j的位置則應該是從索引i的下一項開始。

示例:用交換順序來實現對int類型的數據arrays從小到大排序:

for(int i = 0;i < arrays.Length - 1; i++)

{

       for(int j = i + 1;j < arrays.Length;i++)

       {

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

             {

                 int temp = arrays[i];

                 arrays[i] = arrays[j];

                  arrays[j] = temp;

              }

           }

同理,對double類型的數組arrays從小到大排序示例:

for(int i = 0;i < arrays.Length - 1;i++)

{

      for (int j = i + 1;j < arrays.Length;j++)

      {

            if (arrays[i] < arrays[j])

            {

               double temp = arrays[i];

               arrays[i] = arrays[j];

               arrays[j] = temp;

             }

       }

}

 

 

上面總結的一些可能會有錯誤,大神們看到了麻煩告知,感激不盡。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM