标题:字符串排序的问题
只看楼主
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
 问题点数:0 回复次数:5 
字符串排序的问题

运行后排序不完全,而且不能完全的输出排序后的结果

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

namespace learn_c_sharp
{
class Program
{
static void Main(string[] args)
{
const int size = 50;
Console.WriteLine("How many strings will be sort?\nPlease input the num:");
int num=Convert.ToUInt16(Console.ReadLine());
string[] strarray = new string[size];//定义字符串数组
sort(strarray, num);

}

static void sort(string[] str,int num)
{
Console.WriteLine("Please input the string:\n");//输入数据
for (int i = 0; i < num; i++)
{
Console.WriteLine("Input the No.{0}",i+1);
str[i] = Console.ReadLine();

}

Console.WriteLine(" ______________________________________\n");//分割线
for (int j = 0; j < num;j++ ) //排序过程
for (int i = j; i < num-1; i++)
{

if ( string.CompareOrdinal(str[i], str[i + 1]) > 0 )
{
string temp = str[i];
str[i] = str[i + 1];
str[i + 1] = temp;
}

}
Console.WriteLine("After the Sort:");//输入排序之后的字符串
for (int i=0; i < num; i++)
{
Console.WriteLine("{0}\n", str[i]);
}
}
}
}

[此贴子已经被作者于2007-3-24 22:33:32编辑过]

搜索更多相关主题的帖子: 字符 using System 定义 void 
2007-03-23 17:36
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
得分:0 
顶~~
2007-03-24 22:33
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
得分:0 
up
2007-03-26 17:22
liuminghui
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:2882
专家分:0
注 册:2007-1-26
得分:0 

楼主使用的排序方法是:冒泡排序,其等同于快速排序的最坏情况。

楼主的其他地方并没有问题,问题就出在排序时对循环的控制上。

应该把for (int i = j; i < num-1; i++)
改成for (int i = 0; i < num-1; i++)


遇到类似情况,可以使用特制值法代替一下,真真的看看错误在哪。那样,自己就可以解决一些简单的问题了。

说那么多废话,万一我写的方法错了怎么办??


海鸽 is My Lover!!
2007-03-26 17:56
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
得分:0 
以下是引用liuminghui在2007-3-26 17:56:26的发言:

楼主使用的排序方法是:冒泡排序,其等同于快速排序的最坏情况。

楼主的其他地方并没有问题,问题就出在排序时对循环的控制上。

应该把for (int i = j; i < num-1; i++)
改成for (int i = 0; i < num-1; i++)


遇到类似情况,可以使用特制值法代替一下,真真的看看错误在哪。那样,自己就可以解决一些简单的问题了。

说那么多废话,万一我写的方法错了怎么办??

我不明白的是,我用C语言的时候这个循环是可以的

2007-03-26 21:37
Sinohan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-3-26
得分:0 
i=j+1
二楼没错,就是多做了几次比较

[此贴子已经被作者于2007-3-26 21:50:42编辑过]

2007-03-26 21:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-126205-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.297181 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved