經過視頻的學習,總結了一下,大神們請指教。。。。
如果要將數組中的數字按照從小到大的順序排列。
完成思路:將最小的數字放在數組的第一項,將第二小的數組放在第二項,一直重復,知道完成。
那么如何將最小的數字放在數組索引為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;
}
}
}
上面總結的一些可能會有錯誤,大神們看到了麻煩告知,感激不盡。。。