Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для uniVERKINO
0 / 0 / 0
Регистрация: 20.06.2013
Сообщений: 5

Осуществление сортировки выбором одномерного массива

21.06.2013, 20:28. Показов 1836. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    private void button1_Click(object sender, EventArgs e)
        {    int j;
            string s = textBox1.Text;
            int l = Convert.ToInt32(s[0].ToString());
            int[] k = new int[8];
            k[0] = s[0];
            k[1] = s[1];
            k[2] = s[2];
            k[3] = s[3];
            k[4] = s[4];
            k[5] = s[5];
            k[6] = s[6];
            k[7] = s[7];
            for (int i = 1; i < k.Length; i++)
            {
                
                int buf = k[i];
                for (j = i - 1; j >= 0; j--)
                {
                    if (k[j] < buf)
                        break;
                   k[j + 1] = k[j];
                }
                k[j + 1] = buf;
            }
            s=k[j].ToString();
        }
Мне необходимо реализовать сортировку одномерного массива посредством нажатия на кнопку и последующим его выводом в textBox1. Что здесь не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2013, 20:28
Ответы с готовыми решениями:

Разработать методы сортировки заданного с клавиатуры одномерного массива
Разработать методы сортировки заданного с клавиатуры одномерного массива: пузырьком, обменом, вставками, и свой какой-нибудь быстрый. Что...

Записать алгоритм сортировки по возрастанию одномерного массива методом «пузырька»
нужна помощь: Записать алгоритм сортировки по возрастанию одномерного массива методом «пузырька». заранее спасибо...

Рекурсивный метод сортировки одномерного массива по возрастанию методом выбора
Добрый вечер. Помогите пожалуйста организовать рекурсивный метод сортировки одномерного массива по возрастанию методом выбора. Вот...

6
 Аватар для xDariuSx
14 / 13 / 4
Регистрация: 20.11.2012
Сообщений: 29
21.06.2013, 22:53
C#
1
2
3
4
5
6
7
8
9
10
11
            string s = "1 2 3 20 40 4654 45 654 878 9987 4 10";
            int[] array = new int[0];
 
            foreach (var item in s.Split(' '))
            {
                Array.Resize<int>(ref array, array.Length + 1);
                array[array.Length - 1] = Convert.ToInt32(item);
            }
            Array.Sort(array);
            foreach (var item in array)
                Console.WriteLine(item);
В Вашем случае это будет:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
            
            string s = textBox1.Text;//"1 2 3 20 40 4654 45 654 878 9987 4 10";
            int[] array = new int[0];
            textBox1.Text="";
            foreach (var item in s.Split(' '))
            {
                Array.Resize<int>(ref array, array.Length + 1);
                array[array.Length - 1] = Convert.ToInt32(item);
            }
            var j = 0;
            for (int i = 1; i < array.Length; i++)
            {
 
                int buf = array[i];
                for (j = i - 1; j >= 0; j--)
                {
                    if (array[j] < buf)
                        break;
                    array[j + 1] = array[j];
                }
                array[j + 1] = buf;
            }
            foreach (var item in array)
                textBox1.Text += item.ToString();//Console.WriteLine(item);
1
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
22.06.2013, 00:28
Цитата Сообщение от xDariuSx Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
            string s = "1 2 3 20 40 4654 45 654 878 9987 4 10";
            int[] array = new int[0];
 
            foreach (var item in s.Split(' '))
            {
                Array.Resize<int>(ref array, array.Length + 1);
                array[array.Length - 1] = Convert.ToInt32(item);
            }
            Array.Sort(array);
            foreach (var item in array)
                Console.WriteLine(item);
...
Ужос. У вас хотя бы нужно создавать массив длинной не 0 а s.Split(' ').Length , чтобы избавится от рейсайза.
0
 Аватар для xDariuSx
14 / 13 / 4
Регистрация: 20.11.2012
Сообщений: 29
22.06.2013, 02:31
Цитата Сообщение от Zuzik Посмотреть сообщение
Ужос. У вас хотя бы нужно создавать массив длинной не 0 а s.Split(' ').Length , чтобы избавится от рейсайза.
Изначальный код выполнял действия, в которых размерность массива не могла быть заранее известна. Я не хочу с 0 все писать, по этому просто привел пример, который уже написан и сработает.
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
22.06.2013, 12:10
А кто мешает сделать примерно так
C#
1
2
3
4
5
6
7
8
9
10
            string s = "1 2 3 20 40 4654 45 654 878 9987 4 10";
            string[] sarr = s.Split();
            int[] arr = new int[sarr.Length];
            for (int i=0;i<sarr.Length;i++)
           {
                array[i] = Convert.ToInt32(sarr[i]);
           } 
            Array.Sort(array);
            foreach (var item in array)
                Console.WriteLine(item);
Делает то же самое, размер может быть любым, работает быстрее. Можно еще через LINQ сделать. Тогда вообще все в одну строчку записать можно
C#
1
"1 2 3 20 40 4654 45 654 878 9987 4 10".Split().Select(x=>Convert.ToInt32(x)).OrderBy(x=>x).ToList().ForEach(Console.Writeline);
0
 Аватар для uniVERKINO
0 / 0 / 0
Регистрация: 20.06.2013
Сообщений: 5
24.06.2013, 16:09  [ТС]
Все супер, спасибо, работает, только есть один вопрос, как сделать так чтобы в textBox1 числа с пробелом выводились? А то они меня одним большим числом получились(
0
 Аватар для xDariuSx
14 / 13 / 4
Регистрация: 20.11.2012
Сообщений: 29
24.06.2013, 16:30
В конце заменить это:
C#
1
2
3
            
foreach (var item in array)
                textBox1.Text += item.ToString();//Console.WriteLine(item);
на это:
C#
1
2
3
4
5
            foreach (var item in array)
            {
                textBox1.Text += item.ToString();//Console.WriteLine(item);
                textBox1.Text += "  ";
            }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2013, 16:30
Помогаю со студенческими работами здесь

Реализовать алгоритм сортировки вставками одномерного массива. Тип данных в массиве: ushort
Всем привет! Помогите кто чем может.

Ребят как переделать метод сортировки пузырьком на метод сортировки простым выбором
public void SortPuzirek(int mass, int Size) // метод, выполняющий сортировку методом пузырька { int metka, obmen =...

Метод сортировки одномерного массива "ход конем"
Помогите пожалуйста. Нужен метод сортировки одномерного массива &quot;Ход конем&quot;. Я впервые слышу про этот метод. Подскажите, может есть, где...

Реализация рекурсивного алгоритма сортировки выбором
Реализуйте рекурсивный алгоритм упорядочения по возрастанию заданного массива из n различных целых чисел методом сортировки выбором. ...

Объяснить принцип работы сортировки выбором
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Лаба3 { class Program ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru