Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.09.2013, 16:52   #1
Shtoceg
 
Регистрация: 05.09.2013
Сообщений: 3
По умолчанию проблемы с сортировкой в C#

Всем привет! не могу понять почему при вызове сортировки пузырьком и гномьей сортировки массива размером 1 000 000 сортировка не работает.
есть предположение, что происходит переполнение массива типа int[]. так ли это?
вот код C#
Код:
  static int[] BubbleSort(int[] numbers) // метод сортировки
        {
            int temp;

            for (int i = 0; i < numbers.Length - 1; i++)
            {
                for (int j = 0; j < numbers.Length - i - 1; j++)
                {
                    if (numbers[j] > numbers[j + 1])
                    {
                        temp = numbers[j];
                        numbers[j] = numbers[j + 1];
                        numbers[j + 1] = temp;
                    }
                }
            }

            return numbers;
        }
static void Main(string[] args) // кусок из main
        {

        link1:
            Console.WriteLine("Выберите длину массива:10, 1000, 1000000");
          
            int sl = Convert.ToInt32(Console.ReadLine());
            if (!(sl == 10 | sl == 1000 | sl == 1000000)) goto link1;
            var random = new Random();
            var numbers = Enumerable.Range(0, sl).OrderBy(n => random.Next()).ToArray();
            Console.Write("\n");
            foreach (var number in numbers)
            {
                Console.WriteLine(number);
            }
            link2:
            Console.WriteLine("выберите метод сортировки:\n"+
                "1 Для метода пузырька\n"+
                "2 для блочной сортировки\n"+
                "3 для гномьей сортировки\n");
            string ew = Console.ReadLine();
         

        switch (ew)
           {
               case "1":
                   Console.WriteLine("Вы выбрали сортировку пузырьком");
                   Stopwatch stopWatch = new Stopwatch();
                   stopWatch.Start();

                   BubbleSort(numbers);
                   
                   stopWatch.Stop();
                   long em = stopWatch.ElapsedMilliseconds;
                   long et = stopWatch.ElapsedTicks;
                   Write(numbers, em, et); //Функция записи в файл и вывод на экран(здесь не стал приводить)                           

                   break;
Shtoceg вне форума
Старый 26.09.2013, 08:17   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Длина каждого измерения массива ограничена максимальным значением типа Integer, которое равно (2 ^ 31) - 1=2147483647 всяко больше чем ваше кол-во элементов.
Почему-бы не поискать в нете про размерности?
А при вызове сортировки для 1000 строк? все работает?

Дебагер пробовали? Приятная штука для поиска непонятного =)
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума
Старый 27.09.2013, 01:18   #3
Shtoceg
 
Регистрация: 05.09.2013
Сообщений: 3
По умолчанию

разобрался, все дело в сложности метода (O(n^2)) без распараллеливания будет решатся днями и ночами=)
Shtoceg вне форума
Старый 27.09.2013, 09:11   #4
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Тема закрыта?
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума
Старый 28.09.2013, 19:27   #5
Shtoceg
 
Регистрация: 05.09.2013
Сообщений: 3
По умолчанию

да, тема закрыта
Shtoceg вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с сортировкой в delphi 7 Petyu Помощь студентам 0 04.12.2012 20:13
помогите с сортировкой... DIzza Паскаль, Turbo Pascal, PascalABC.NET 3 16.06.2009 00:46
Помогите с сортировкой radist Паскаль, Turbo Pascal, PascalABC.NET 5 23.04.2007 12:50