Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка массива, сортировка массива вставками и выбором 
:(
    Опции темы
shift20
Дата 10.6.2012, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 6.6.2012

Репутация: нет
Всего: нет



помогите пожалуйста осуществить сортировку массива выбором и вставки срочно надо!!!
PM MAIL   Вверх
fedyunina
Дата 10.6.2012, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 1.3.2012
Где: Питер

Репутация: нет
Всего: нет



срочно надо - кури теорию... потом пробуй запрогать, а уж проблемы возникнут - пиши вопросы...
PM MAIL Skype   Вверх
erm0l0v
Дата 10.6.2012, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.1.2011

Репутация: 1
Всего: 1



Код

class Program
    {
        static void Main()
        {
            var array = new int[]{5,4,3,2,1};
            Console.WriteLine(String.Join(" ", new SellectionSorter<int>().Sort(array)));
            Console.WriteLine(String.Join(" ", new InsertSorter<int>().Sort(array)));
            Console.ReadKey();
        }
    }

    interface ISorter<T>
        where T:IComparable
    {
        T[] Sort(T[] array);
    }

    class InsertSorter<T> : ISorter<T> where T : IComparable
    {
        public T[] Sort(T[] array)
        {
            if (array.Length < 2)
                return array;
            var result = new T[array.Length];
            array.CopyTo(result, 0);
            for (var i = 1; i < result.Length; i++)
            {
                var key = result[i];
                var j = i - 1;
                while (j >= 0 && result[j].CompareTo(key) == 1)
                {
                    result[j + 1] = result[j];
                    j--;
                }
                result[j + 1] = key;
            }
            return result;
        }
    }

    class SellectionSorter<T> : ISorter<T> where T : IComparable
    {
        public T[] Sort(T[] array)
        {
            var result = new T[array.Length];
            array.CopyTo(result, 0);
            for (var i = 0; i < result.Length - 1; i++)
            {
                var min = i;
                for (var j = i + 1; j < result.Length; j++)
                {
                    if (result[j].CompareTo(result[min]) == -1)
                        min = j;
                }
                if (result[i].CompareTo(result[min]) != 0)
                {
                    var buf = result[i];
                    result[i] = result[min];
                    result[min] = buf;
                }
            }
            return result;
        }
    }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0401 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.