0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 20
|
||||||
1 | ||||||
Сортировка массива с помощью Класса-прототипа List<>26.03.2011, 22:39. Показов 2930. Ответов 10
Метки нет (Все метки)
Приветствую! Товарищи, нужна помощь в написании простенькой программы. Программа должна считывать данные из текстового файла и сортировать содержимое по возрастанию. Изменение самих файлов не требуется, так как меня интересует только время, за которое массив будет отсортирован. Но обязательно нужно использовать метод сортировки List.Sort(). Мои нароботки(считывание данных из файла):
0
|
26.03.2011, 22:39 | |
Ответы с готовыми решениями:
10
Сортировка массива объектов, созданных с помощью класса Сортировка List состоящего из своего класса Сортировка в std::list состоящем из объектов класса Создание класса-прототипа |
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
|
||||||
26.03.2011, 22:58 | 2 | |||||
1
|
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 20
|
|
27.03.2011, 12:49 [ТС] | 3 |
К сожалению в результате пишет, что "Отсортирован за: 0". Проверял сортировку с помощью простых операций (алгоритм бинарных вставок) всё работает, а этот метод выдаёт 0 (
Добавлено через 12 часов 44 минуты Ребята очень нужна помощь, завтра прям край нужно это сделать, плиз!(
0
|
289 / 234 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
|
27.03.2011, 13:06 | 4 |
Считай с файла и отсортируй не один раз, а 10(допустим в цикле), а потом полученное время раздели на 10. У меня была такая же ситуация, когда в универе решал задачу о ханойских башнях и таймер тоже показывал 0. Когда ты засекаешь время, то число получается сильно маленькое и выводит 0, а так полученное время разделишь на 10.0 и положи в дабл
0
|
21 / 21 / 3
Регистрация: 11.07.2010
Сообщений: 63
|
|
27.03.2011, 13:17 | 5 |
Используйте System.Diagnostics.StopWatch, он дает возможность измерять в милисекундах и даже тиках.
1
|
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 20
|
||||||
27.03.2011, 14:29 [ТС] | 6 | |||||
0
|
289 / 234 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
|
27.03.2011, 14:34 | 7 |
Если он тебе возвращает время сортировки 5 миллисекунд и ты их делишь на 10, то получишь 0,5, а тип у тебя лонг. Вот ты и получаешь 0. Сделай тип дабл
0
|
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 20
|
||||||
27.03.2011, 14:46 [ТС] | 8 | |||||
А всё равно выдаёт 0! Хоть ты тресни! Вот полный текст программы, может там ошибка, посмотрите пожалуйста, люди добрые
0
|
289 / 234 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
|
27.03.2011, 14:54 | 9 |
Попробуй увеличить количество циклов(не 10, а поставь намного больше). Если нет, то посмотри что у тебя в массиве mas лежит после парсинга файла. Может он пустой? Выведи на консоль и посмотри
1
|
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 20
|
|
27.03.2011, 15:15 [ТС] | 10 |
Спасибо огромное!!! Увеличел счётчик до 1000 и процесс пошёл Кстати у меня вопрос если в mas помещаются числа, а mas.Sort сортирует их по возрастанию, то как сделать так, чтобы он сортировал их по убыванию. Я думаю нужно писать IComparer но может вы знаете другой более эффективный способ!
P.S. Товарищу dzjundzja88 и Петррр особый респект! Спасибо nicolaus2 за альтернативный метод рассчёта времени!
0
|
145 / 129 / 27
Регистрация: 20.12.2010
Сообщений: 242
|
||||||
28.03.2011, 13:41 | 11 | |||||
0
|
28.03.2011, 13:41 | |
28.03.2011, 13:41 | |
Помогаю со студенческими работами здесь
11
Массив объектов класса List: Error CS0118: `list' is a `field' but a `type' was expected Сортировка массива с помощью потоков Сортировка массива с помощью дерева Сортировка одномерного массива..с помощью процедур Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |