首页 > 代码库 > 如何将数组中的数字按照从小到大的顺序排列???
如何将数组中的数字按照从小到大的顺序排列???
经过视频的学习,总结了一下,大神们请指教。。。。
如果要将数组中的数字按照从小到大的顺序排列。
完成思路:将最小的数字放在数组的第一项,将第二小的数组放在第二项,一直重复,知道完成。
那么如何将最小的数字放在数组索引为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;
}
}
}
上面总结的一些可能会有错误,大神们看到了麻烦告知,感激不尽。。。
如何将数组中的数字按照从小到大的顺序排列???