C#作业求助:如何对随机生成的整数数组按大小排序并打印
给数组排序的两种实现方法
方法一:用.NET内置的Array.Sort()(快速实现)
.NET框架已经提供了现成的数组排序方法,直接调用就能完成升序排序,步骤简单:
- 在生成随机数组之后、打印之前,调用
Array.Sort(ints); - 执行原有打印逻辑即可。
修改后的完整代码:
internal class Program { private static void RandomNumbers() { int Min = 0; int Max = 100; int[] ints = new int[10]; Random randomNum = new Random(); for (int i = 0; i < ints.Length; i++) { ints[i] = randomNum.Next(Min, Max); } // 新增:调用内置方法完成升序排序 Array.Sort(ints); for (int i = 0; i < ints.Length; i++) { Console.WriteLine($"{i}: {ints[i]}"); } } static void Main(string[] args) { RandomNumbers(); } }
如果需要降序排序,可在Array.Sort()后追加Array.Reverse(ints);。
方法二:手动实现冒泡排序(理解排序原理)
如果作业要求手动实现排序逻辑,冒泡排序是入门级的选择,核心逻辑是重复遍历数组,比较相邻元素并交换位置,把较大的元素逐步"冒泡"到数组末尾。
修改后的代码(替换内置排序部分):
internal class Program { private static void RandomNumbers() { int Min = 0; int Max = 100; int[] ints = new int[10]; Random randomNum = new Random(); for (int i = 0; i < ints.Length; i++) { ints[i] = randomNum.Next(Min, Max); } // 手动实现冒泡排序 for (int i = 0; i < ints.Length - 1; i++) { for (int j = 0; j < ints.Length - 1 - i; j++) { // 当前元素大于下一个时,交换两者位置 if (ints[j] > ints[j + 1]) { int temp = ints[j]; ints[j] = ints[j + 1]; ints[j + 1] = temp; } } } for (int i = 0; i < ints.Length; i++) { Console.WriteLine($"{i}: {ints[i]}"); } } static void Main(string[] args) { RandomNumbers(); } }
内容的提问来源于stack exchange,提问作者Uuno Purhaturo
相关产品推荐
相关产品推荐

