c#数组和数字排序问题

C#只用循环来排序。。效率最高的排序方法是什么》》有大神知道吗》??最好附代码,追加个问题,C#中能从TEXT中直接获取出运算符,而不使用条件判断有办法吗??... C#只用循环来排序。。效率最高的排序方法是什么》》有大神知道吗》??最好附代码,追加个问题,C#中能从TEXT中直接获取出运算符,而不使用条件判断有办法吗?? 展开
 我来答
匿名用户
2014-03-13
展开全部
class 插入排序
{
static void Main(string[] args)
{

Console.Write("请输入数组个数:");
int num=int.Parse(Console.ReadLine());
int[]a=new int[num];
for (int i = 0; i < a.Length; i++)
{
Console.Write("请输入第{0}个数:",i+1);
a[i] = int.Parse(Console.ReadLine());
}
int temp;//存放临时变量
for(int i=1;i<a.Length;i++)
{
temp=a[i];
int j;
for ( j = 0; j < i; j++)
{
if (temp < a[j])
{
for (int h = i; h > j; h--)
{
a[h] = a[h - 1];
}
break;
}
} a[j] = temp;

}
Console.WriteLine("升序结果");
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
Console.ReadLine();
}
} class 交换排序
{
static void Main(string[] args)
{

Console.Write("请输入数组个数:");
int num=int.Parse(Console.ReadLine());
int[]a=new int[num];
for (int i = 0; i < a.Length; i++)
{
Console.Write("请输入第{0}个数:",i+1);
a[i] = int.Parse(Console.ReadLine());
}
int temp;//存放临时变量
for(int i=0;i<a.Length-1;i++)
{
for (int j = i+1; j < a.Length; j++)
{
if (a[i] > a[j])
{
temp = a[i];//交换数组的值
a[i] = a[j];
a[j]=temp;
}
}

}
Console.WriteLine("升序结果");
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
Console.ReadLine();
}
} class 交换排序
{
static void Main(string[] args)
{

Console.Write("请输入数组个数:");
int num=int.Parse(Console.ReadLine());
int[]a=new int[num];
for (int i = 0; i < a.Length; i++)
{
Console.Write("请输入第{0}个数:",i+1);
a[i] = int.Parse(Console.ReadLine());
}
int temp;//存放临时变量
for(int i=0;i<a.Length-1;i++)
{
for (int j = i+1; j < a.Length; j++)
{
if (a[i] > a[j])
{
temp = a[i];//交换数组的值
a[i] = a[j];
a[j]=temp;
}
}

}
Console.WriteLine("升序结果");
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
Console.ReadLine();
}
} class 选择排序
{
static void Main(string[] args)
{

Console.Write("请输入数组个数:");
int num=int.Parse(Console.ReadLine());
int[]a=new int[num];
for (int i = 0; i < a.Length; i++)
{
Console.Write("请输入第{0}个数:",i+1);
a[i] = int.Parse(Console.ReadLine());
}
int MAX//记录最小值
, temp,//存放临时变量
num1;//记录交换的数组下标
for(int i=0;i<a.Length;i++)
{
num1 = i;
MAX = a[i];
for (int j = i+1; j < a.Length; j++)
{
if (MAX>a[j])
{
MAX = a[j];
num1 = j;
}
}
temp = a[num1];
a[num1] = a[i];
a[i] = temp;
}
Console.WriteLine("升序结果");
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
Console.ReadLine();
}
}
匿名用户
2014-03-13
展开全部
冒泡算法还算快吧,不知道你想知道什么样的运算符,还是要把TEXT展开成一个表达式?  public void BubbleSort(int[] array)  {   int length = array.Length;   for (int i = 0; i <= length - 1; i++)   {   for (int j = length - 1; j >= 1; j--)   {   if (array[j] < array[j - 1] )   {   int temp = array[j];   array[j] = array[j - 1];   array[j - 1] = temp;   }   }   }  }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-13
展开全部
字符串比较排序(从大到小)string[] str={ "so","moon","moho",};string temp;for(int i=0;i<str.Length;i++){ for(int j=i;j<str.Length-1;j++) { if(str[i].CompareTo(str[i+1])<0) { temp=str[i]; str[i]=str[i+1]; str[i+1]=temp; } }}字符,数值类型(数字一样)char[] ch={ 's','m','o',};char temp;for(int i=0;i<ch.Length;i++){ for(int j=i;j<ch.Length-1;j++) { if(ch[i]<ch[i+1])) { temp=ch[i]; ch[i]=ch[i+1]; ch[i+1]=temp; } }}如果是指 一个string 对象的话 string str="2+5-6";一、知道运算符对应下标str.SubString(1,2)是加号 str.SubString(3,4)是减号二、不知道运算符对应下标(用正则表达式) 不过我不知道怎么在C#中用正则表达式,也可能没办法用!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式