Большой Воронежский Форум
» Программирование>помогите решить задачу на C#
alex_bas 10:38 13.05.2007
условие задачи:
Определить N наиболее встречающихся слов в тексте, вывести их в порядке убывания частоты встречаемости с указанием частоты.

пока что я смог получить только список слов с указанием частоты встречаемости. Помогите плиз отсортировать по частоте встречаемости. Или подскажите в каком направлении копать.
Вот то что я имею на настоящее время:
using System;
using System.IO;
using System.Collections;

class Program
{

static void Main()
{
ArrayList a = new ArrayList();
char[] sep3 = new char[] { ' ' };
String u = null;
int k = 1;
int j = 0;

StreamReader inStream = null;
string inFileName = "mydata.txt";
try
{
inStream = new StreamReader(inFileName);
}
catch (IOException ioe)
{
Console.WriteLine(ioe.Message);
return;
}
while (true)
{
u = inStream.ReadLine();
if (u == null) break;
foreach (string ss in u.Split(sep3))
a.Add(ss);
}

a.Sort();

for (int i = 1; i < a.Count; i++)
{
j = i - 1;

if (a[i].Equals(a[j]))
{
k++;
}
else
{

u = k + " - " + a[i - 1];
Console.WriteLine(u);
k = 1;
}
}
}
} [Ответ]
$@#Y@ 10:42 13.05.2007
alex_bas, тебе нужно два массива - в одном хранишь сами слова, в другом под теми же номерами количество этих слов в тексте. Затем производишь сортировку второго массива и соотвественно этой сортировке меняешь местами слова в первом массиве. Потом просто выводишь два этих массива. [Ответ]
alex_bas 16:07 13.05.2007
$@#Y@ спасибо, решил сделав совместную сортировку обоих массивов. [Ответ]
Вверх