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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2010, 10:56   #1
Konstantin007
 
Регистрация: 16.10.2010
Сообщений: 4
По умолчанию Сортировка массива

Добрый день. У меня следующий вопрос. Как можно реализовать рекурсивный алгоритм сортировки массива по возрастанию методом сортировки выбором. Заранее спасибо.
Konstantin007 вне форума Ответить с цитированием
Старый 16.10.2010, 11:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А как ты реализовываешь просто сортировку выбором?
Покажи код.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2010, 12:36   #3
Konstantin007
 
Регистрация: 16.10.2010
Сообщений: 4
По умолчанию

В итерационной форме сделал так:
static void SortArray(int [] A)
{
for (int i = 0; i < A.Length; i++)
{
int k = i;
int min = A[i];
//поиск минимального элемента
for (int j = i+1;j<A.Length;j++)
if (A[j] < min)
{
k = j;
min = A[j];//запоминаем наименьшее значение
}
//поменяем местами элементы
if (i == k) continue;
int a = A[k];
A[k] = A[i];
A[i] = a;
}
}
Konstantin007 вне форума Ответить с цитированием
Старый 16.10.2010, 14:21   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот что-то вроде такого:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static private int[,] a;
        static void srt(int i,int j) {
            if (j<a.GetLength(1)-1) {
                if (a[i, j] < a[i, j + 1])
                {
                    int k = a[i, j]; a[i, j] = a[i, j + 1]; a[i, j + 1] = k;
                }
                j++;
            } else {
                ++i; j = 0;
            };
            if (i < a.GetLength(0)) { srt(i, j); }
        }
        static void Main(string[] args)
        {
            a = new int[3, 4];
            Random r = new Random();
            for (int i = 0; i < a.GetLength(0); i++) {
                for (int j = 0; j < a.GetLength(1); j++) {
                    a[i, j] = r.Next()/10000;
                    Console.Write("{0}\t", a[i, j]);
                }; Console.WriteLine();
            }
            
            for (int i = 0; i < a.GetLength(0); i++)
            {
                    srt(0, 0);
            }
            Console.WriteLine();
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    Console.Write("{0}\t", a[i, j]);
                }; Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}
Но правда код не очень красив...
I'm learning to live...

Последний раз редактировалось Stilet; 16.10.2010 в 14:24.
Stilet вне форума Ответить с цитированием
Старый 16.10.2010, 14:35   #5
Konstantin007
 
Регистрация: 16.10.2010
Сообщений: 4
По умолчанию

А для одномерного массива? Т.е. у тебя метод сортировки идет до static void Main(string[] args)?
Konstantin007 вне форума Ответить с цитированием
Старый 16.10.2010, 14:46   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А для одномерного массива?
А это твое домашнее задание. Тебе поправить пару строк
Цитата:
Т.е. у тебя метод сортировки идет до static void Main(string[] args)?
Какая разница где его описывать? Можно и после описать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2010, 14:54   #7
Konstantin007
 
Регистрация: 16.10.2010
Сообщений: 4
По умолчанию

Благодарствую
Konstantin007 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка массива chertovka. Помощь студентам 2 15.06.2010 07:06
сортировка массива Superlotles Общие вопросы C/C++ 2 05.04.2010 10:21
сортировка массива Superlotles Общие вопросы Delphi 0 03.04.2010 21:00
Сортировка массива по С++ Moldir Общие вопросы C/C++ 1 28.10.2009 17:40
Сортировка массива С/С++ Dagget Помощь студентам 1 16.07.2008 12:18