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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2010, 20:31   #1
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Лампочка Метод Черпака

Здравствуйте , подскажите сортировку чисел методом Черпака, на форуме смотрел вроде бы нет подобной темы , меня интересует как ,и по какому принципу происходит эта сортировка , и если можно наглядный пример . . Заранее спасибо . . .
Alex_sim вне форума Ответить с цитированием
Старый 29.04.2010, 00:42   #2
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

first link in google...)))

Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace BucketSort
{
    class BucketSort
    {
        private void Sort(int[] integers)
        {
            //Verify input
            if (integers == null || integers.Length == 0)
                return;

            //Find the maximum and minimum values in the array
            int maxValue = integers[0]; //start with first element
            int minValue = integers[0];

            //Note: start from index 1
            for (int i = 1; i < integers.Length; i++)
            {
                if (integers[i] > maxValue)
                    maxValue = integers[i];

                if (integers[i] < minValue)
                    minValue = integers[i];
            }

            //Create a temporary "bucket" to store the values in order
            //each value will be stored in its corresponding index
            //scooting everything over to the left as much as possible (minValue)
            //e.g. 34 => index at 34 - minValue
            List<int>[] bucket = new List<int>[maxValue - minValue + 1];

            //Initialize the bucket
            for (int i = 0; i < bucket.Length; i++)
            {
                bucket[i] = new List<int>();
            }

            //Move items to bucket
            for (int i = 0; i < integers.Length; i++)
            {
                bucket[integers[i] - minValue].Add(integers[i]);
            }

            //Move items in the bucket back to the original array in order
            int k = 0; //index for original array
            for (int i = 0; i < bucket.Length; i++)
            {
                if (bucket[i].Count > 0)
                {
                    for (int j = 0; j < bucket[i].Count; j++)
                    {
                        integers[k] = bucket[i][j];
                        k++;
                    }
                }
            }
        }
    }
}
akasex вне форума Ответить с цитированием
Старый 29.04.2010, 12:55   #3
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

а в чем главная мысль этой сортировки???
Alex_sim вне форума Ответить с цитированием
Старый 29.04.2010, 12:58   #4
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от akasex Посмотреть сообщение
first link in google...)))

Код:

            //Initialize the bucket
            for (int i = 0; i < bucket.Length; i++)
            {
                bucket[i] = new List<int>();
            }

            //Move items to bucket
            for (int i = 0; i < integers.Length; i++)
            {
                bucket[integers[i] - minValue].Add(integers[i]);
            }

            //Move items in the bucket back to the original array in order
            int k = 0; //index for original array
            for (int i = 0; i < bucket.Length; i++)
            {
                if (bucket[i].Count > 0)
                {
                    for (int j = 0; j < bucket[i].Count; j++)
                    {
                        integers[k] = bucket[i][j];
                        k++;
                    }
                }
            }
        }
    }
}
А через стек это будет так же ? или я ошибаюсь?
Alex_sim вне форума Ответить с цитированием
Старый 29.04.2010, 19:15   #5
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Цитата:
Сообщение от Alex_sim Посмотреть сообщение
А через стек это будет так же ? или я ошибаюсь?
через стек это как ???
akasex вне форума Ответить с цитированием
Старый 30.04.2010, 12:57   #6
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

А в чем главная мысль этой сортировки???
я просто не понимаю всю суть?? Поясните плиз??
<b>Стек эт как бы ведро. по правилу первый зашел последний вышел. </b>
Alex_sim вне форума Ответить с цитированием
Старый 30.04.2010, 16:59   #7
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Bucket Sort. Wikipedia.
akasex вне форума Ответить с цитированием
Старый 30.04.2010, 18:18   #8
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Спасибо , а вот у меня метод черпака а этот блоковый, это тоже самое или же они похожи ?
Alex_sim вне форума Ответить с цитированием
Старый 30.04.2010, 22:25   #9
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Bucket sort = Блочная сортировка, Карманная сортировка, Корзинная сортировка.
akasex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Крамера sllh_111 Помощь студентам 1 18.02.2010 19:27
Безумно сложные задачки!!!! Метод Гаусса, итераций, метод половинного деления, задача Коши и т.д. Хомяк!!!!! Помощь студентам 4 08.07.2009 10:08
Метод итераций и метод Зейделя prikolist Общие вопросы C/C++ 40 18.06.2009 17:40
Метод итераций и комбинированный метод prikolist Общие вопросы C/C++ 2 16.06.2009 20:51