用C#实现对数组元素排序(Array.Sort)方法

siki老师出的又一道题目,刚看题目觉得有点难,其实想通了就不难了。

题目是:编写一个控制台程序,要求用户输入一组数字用空格间隔,对用户输入的数字从小到大输出。(Array.Sort方法和冒泡排序)

今天先搞定了Array.Sort方法排序,其实调用Array.Sort方法很简单,觉得有困难的是,怎么对数组进行处理?

思路如下:

一、处理用户输入的数组

用户输入一组数字用空格间隔,怎么才能将一个字符串用空格分开呢?回顾了前天学习的内容,siki老师简单的演示了下Split方法(就写了一段小代码,一不留神就过去了。)

Split方法,可以以某个字符对字符串进行分割,看懂了演示,又找了找网上其他的例子,自己写了一个小程序来验证了下,代码如下:

namespace Split方法
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "小X豆X丁X多X多";
            string[] strArray = str.Split('X');//这里是字符'X',因为Split方法是用字符来分割字符串的
            for (int i = 0; i < strArray.Length; i++)
            {
                Console.Write(strArray[i]);//输出一个字符串数组的内容需要遍历这个数组一次
            }
            Console.ReadKey();
        }
    }
}


运行结果:字符串:"小X豆X丁X多X多"中的X都被Split方法去掉了,顺序输出的字符串元素就是:小豆丁多多

好啦,既然已经掌握了分割字符串的方法,那么题目需求的一半就搞定了,敲吧敲吧,代码如下

namespace 练习5._5排序与数组处理
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = Console.ReadLine();//接受用户输入,假设用户输入的全是数字空格,没有其他字符
            string[] strArray = str.Split(' ');//用char空格分割字符串,再将分割后的数组存入strArray
            int[] numArray = new int[strArray.Length];//初始化一个整数型numArray,length与strArray相等
            for (int i = 0; i < strArray.Length; i++)//遍历strArray
            {
                int temp = Convert.ToInt32(strArray[i]);//创建中间变量temp,用于接受strArray[i]的值
                numArray[i] = temp;//将temp的值赋值给numArray[i]
                Console.Write(numArray[i]+"/");//用这行代码可以检测去掉空格后,数列的输出结果
            }           
        }
    }
}


至此,这道题的一半被做出来了。将用户输入的字符串变成了一个int型的数组

二、排序

今天的排序就调用Array.Sort方法就行了,这是C#内置的方法,还没有研究透彻,直接用用先

namespace 练习5._5排序与数组处理
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = Console.ReadLine();
            string[] strArray = str.Split(' ');
            int[] numArray = new int[strArray.Length];
            for (int i = 0; i < strArray.Length; i++)
            {
                int temp = Convert.ToInt32(strArray[i]);
                numArray[i] = temp;
            }
            Array.Sort(numArray);//用Array.Sort对numArray排序
            for (int i = 0; i < numArray.Length; i++)
            {
                Console.Write(numArray[i]+" ");//输出排序后的numArray              
            }
            Console.ReadKey();
        }
    }
}

运行验证下,没问题。

明天再学习下传说中的冒泡法。

你可能感兴趣的:(C#编程)