一个很特别的题 任意输入几个数字用逗号隔开,输入回车键结束,快速排序这个数组?
如果用控制台的方式怎么 用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()--------------------编程问答-------------------- 楼上的那个方法是用VB的窝。。。。 --------------------编程问答--------------------
{
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));
}
}
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#