当前位置:编程学习 > C#/ASP.NET >>

一个很特别的题 任意输入几个数字用逗号隔开,输入回车键结束,快速排序这个数组?

如果用控制台的方式怎么 用c#来实现啊? --------------------编程问答-------------------- Console.RedLine 读取 --------------------编程问答-------------------- 很简单的
首先获取string input= Console.ReadLine()
然后string[] strArray = input.Split(",");
目前就是一个字符型的数组了,可以进行转化下,变成int类型的,比如intArray
最终对intArray进行排序即可。

或者直接使用List,然后调用List.Sort()或者Array亦可,Array.Sort() --------------------编程问答-------------------- 就是c排序的一个算法,用c# 控制台程序读取在用算法排序就行了。 --------------------编程问答-------------------- var v=Console.ReadLine();
var v2=v.Split(',');
var v3=new List<int>();
foreach(var item in v2)
{
  v3.Add(int.Parse(item));
}
v3.Sort();

foreach(var item in v3)
{
  Console.Write("{0},",item);
}
Console.Read();
--------------------编程问答-------------------- 这或许是您要的

public void Main() 

    while (Strings.UCase(Console.ReadLine) != "EXIT") { 
        string[] S = Console.ReadLine.Split(","); 
        Array.Sort(S); 
        string tmpS = ""; 
        for (int I = 0; I <= S.Length - 1; I++) { 
            tmpS += S(I) + ","; 
        } 
        Console.WriteLine(tmpS.Substring(0, tmpS.Length - 1)); 
    } 
--------------------编程问答-------------------- 楼上的那个方法是用VB的窝。。。。 --------------------编程问答--------------------

using System;
using System.Collections.Generic;
using System.Text;

namespace StrSortQuick
{
    class Program
    {
        static int partition(int[] a, int low, int high)
        {
            int pivot = a[low];
            while (low < high)
            {
                while (low < high && a[high] >= pivot)
                {
                    high--;
                }
                if (low < high)
                {
                    a[low] = a[high];
                    low++;
                }

                while (low < high && a[low] <= pivot)
                {
                    low++;
                }
                if (low < high)
                {
                    a[high] = a[low];
                    high--;
                }
            }

            a[high] = pivot;
            return high;

        }

        static void quickSort(int[] a, int low, int high)
        {
            if (low >= high)
                return;
            int mid = partition(a, low, high);
            quickSort(a, low, mid - 1);
            quickSort(a, mid + 1, high);

        }


        static void Main(string[] args)
        {
            Console.WriteLine("输入几个数字用逗号隔开,按回车键结束:");
            string str = Console.ReadLine();
            string[] strArray = str.Split(',');
            int[] k=new int[strArray.Length];
            for (int i = 0; i < strArray.Length; i++)
            {
                k[i] = Convert.ToInt32(strArray[i]);
            }
            quickSort(k, 0, k.Length - 1);
            Console.WriteLine("排序后数组");
            for (int j = 0; j < strArray.Length; j++)
            {
                Console.Write("{0} ", k[j]);

            }
            Console.ReadKey();
        }
    }
}
成功通过测试! --------------------编程问答-------------------- 楼上的,有那么复杂吗?
        static void Main(string[] args)
        {
            Console.WriteLine("输入几个数字用逗号隔开,按回车键结束:"); 
            string str = Console.ReadLine();
            string[] Astr = str.Split(',');
            int[] iArray = new int[Astr.Length];

            for (int j = 0; j < Astr.Length; j++)
            {
                iArray[j] = Convert.ToInt32(Astr[j]);       
            }
            Array.Sort(iArray);

            string tmp = "";
            for (int i = 0; i < iArray.Length; i++)
            {
                tmp += iArray[i] + ",";
            }
            Console.WriteLine(tmp.Substring(0, tmp.Length - 1));
            Console.ReadKey();
        }

也可以实现,测试通过
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,