Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Apathy2301
1 / 1 / 3
Регистрация: 28.10.2017
Сообщений: 103
1

Метод быстрой сортировки

18.01.2018, 15:24. Просмотров 446. Ответов 2
Метки нет (Все метки)

Вот еще один есть вопрос программа работает почти правильно.... но надо сделать так чтобы выводило положительные числа тоже.... но чтобы они стояли на своих местах, т.е я поместил снизу пример работы программы, мне нужно чтобы было так:
т.е первоначально есть массив и он по методу быстрой сортировки сортирует его так: -10 -9 -1 -1
Мне необходимо чтобы выводило так:
-10 4 9 -9 4 -1 -1 9 3 4. Напишите пожалуйста что надо добавить в программе строчкой или что?
Сама программа вот:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp1
{
    class QuickSorting
    {
        public static void sorting(double[] arr, long first, long last)
        {
            double p = arr[(last - first) / 2 + first];// ищем средний элемент
            double temp;
            long i = first, j = last;
            while (i <= j)
            {
                while (arr[i] < p && i <= last) ++i;
                while (arr[j] > p && j >= first) --j;
                if (i <= j)
                {
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                    ++i; --j;
                }
            }
            if (j > first) sorting(arr, first, j);
            if (i < last) sorting(arr, i, last);
        }
    }
 
    class Test
    {
        static void Main(string[] args)
        {
            double[] arr = new double[10];//указываем кол-во элементов массива
 
            //заполняем массив случайными числами
            Random rd = new Random();
            for (int i = 0; i < arr.Length; ++i)
            {
                arr[i] = rd.Next(-10, 10);
            }
            Console.WriteLine("Неотсортированный массив:");
            foreach (double x in arr)
            {
                Console.Write(x + " ");
            }
 
            //сортировка
            QuickSorting.sorting(arr, 0, arr.Length - 1);
            Console.WriteLine("\n\nОтсортированный массив методом Хоара:");
            for (int i = 0; i < arr.Length; ++i)
            {
                if (arr[i]<0)
                {
                    Console.Write(arr[i]+" ");
                }
            }
        }
    }
}
0
Миниатюры
Метод быстрой сортировки  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2018, 15:24
Ответы с готовыми решениями:

Метод быстрой сортировки. Подскажите где ошибка?
Не могу понять где ошибка? using System; namespace ConsoleApplication67 { class Program ...

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

Алгоритм быстрой сортировки
Разработать и реализовать программу, которая будет сортировать массив алгоритмом быстрой сортировки

Организация быстрой сортировки
Дорогие друзья! Нужна помощь в организации быстрой сортировки C#, (прошу по возможности предложить...

2
ahtik95
96 / 98 / 58
Регистрация: 29.09.2016
Сообщений: 403
Завершенные тесты: 11
18.01.2018, 15:53 2
Честно говоря, хз ,как там в самом методе сделать игнор положительных чисел по индексам.
Но можно сделать промежуточный массив его отсортировать и по этим же индексам присвоить.

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
28
29
30
31
32
33
34
35
       static void Main(string[] args)
        {
            double[] arr = new double[10];//указываем кол-во элементов массива
            List<double> _arr = new List<double>();
            //заполняем массив случайными числами
            Random rd = new Random();
            for (int i = 0; i < arr.Length; ++i)
            {
                arr[i] = rd.Next(-10, 10);
            }
            Console.WriteLine("Неотсортированный массив:");
            foreach (double x in arr)
            {
                if (x < 0) _arr.Add(x);
                Console.Write(x + " ");
            }
 
            //сортировка
            double[] Arr = _arr.ToArray();
            QuickSorting.sorting(Arr, 0, Arr.Length - 1);
            int count = 0;
            for(int i = 0; i < arr.Length; i++)
            {
                if (arr[i] < 0) { arr[i] = Arr[count];count++; }
            }
 
            Console.WriteLine("\n\nОтсортированный массив методом Хоара:");
            for (int i = 0; i < arr.Length; ++i)
            {
                
                    Console.Write(arr[i] + " ");
                
            }
            Console.ReadLine();
        }
1
Apathy2301
1 / 1 / 3
Регистрация: 28.10.2017
Сообщений: 103
18.01.2018, 17:03  [ТС] 3
Спасибо большое вам!
0
18.01.2018, 17:03
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2018, 17:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вывод быстрой сортировки
Необходимо отсортировать массив быстрой сортировкой и вывести каждый шаг сортировки (трассировку) в...

Алгоритм быстрой сортировки
Добрый день. Скиньте пожалуйста готовый код программы быстрой сортировки у кого есть.

Различные реализации быстрой сортировки
Доброго времени суток! Необходимо реализовать быструю сортировку: ////1//// По выбору опорного...

Прокомментировать код быстрой сортировки
в одной из тем на форуме по строкам дано описание быстрой сортировки по строкам вот код, подскажите...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.