Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
KillJoy
55 / 55 / 14
Регистрация: 21.09.2009
Сообщений: 313
Записей в блоге: 1
#1

Оптимизация сортировки методом двухпутевых вставок - C#

25.02.2012, 21:46. Просмотров 1547. Ответов 0
Метки нет (Все метки)

Помогите оптимизировать сортировку методом двухпутевых всавок. Уж слишком долго сортирут.
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
 
                    int[] array = {//массив}; //исхоный массив
                    int[] sorted  = new int[array.Length]; // отсортированный массив
                    for (int i = 1; i < array.Length; i++)
                        if (array[i] < array[0])
                            middlePosition++;
                    sorted[middlePosition] = array[0]; //опредлеляем положение первого элемента исходного массива в новом массиве
                    leftPointer = rightPointer = middlePosition; // leftPointer и rightPointer указыают на номера заполненных элементов слева и справа
 
                    for (int i = 1; i < array.Length; i++)
                    {
                        current = array[i];
                        k = 0;
                        if (current > sorted[leftPointer] && current < sorted[rightPointer])
                        {
                            while (sorted[k] < current)
                                k += 1;
 
                            if (k - 1 < middlePosition) //если он находится слева
                            {
                                {
                                    for (int t = leftPointer; t < k; t++)
                                        sorted[t - 1] = sorted[t];
                                }
                                leftPointer--;
                                sorted[k - 1] = current;
                            }
                            if (k > middlePosition) //если он находится справа
                            {
                                for (int t = rightPointer; t >= k - 1; t--)
                                {
                                    sorted[t + 1] = sorted[t];
                                }
                                rightPointer++;
                                sorted[k] = current;
                            }
                        }
                        else
                        {
                            if (current >= array[0])
                            {
                                rightPointer++;
                                sorted[rightPointer] = current;
                            }
                            if (current < array[0])
                            {
                                leftPointer--;
                                sorted[leftPointer] = current;
                            }
                        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2012, 21:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оптимизация сортировки методом двухпутевых вставок (C#):

Реализовать сортировку массива целых чисел методом двухпутевых вставок - C#
Вот такая задача: Реализовать сортировку массива целых чисел методом двухпутевых вставок при использовании следующих дополнительных...

Дописать программу методом сортировки вставок - C#
Ребят помогите пожалуйста дописать программу методом сортировки вставок. { int m = new int ; Random Gen = new Random(); for (int...

Сортировка буквенного массива методом вставок - C#
namespace ConsoleApplication1 { class Program { static void Main(string args) { int...

Сортировка методом вставок с подсчетом времени - C#
Мне нужна Сортировка методом вставок написанная для массива и листа с подсчетом времени. Никто не поможет? Добавлено через 11 минут ...

Исследование алгоритмов сортировки методом прямого включения и методом Шелла - C#
Здравствуйте. Мне нужно написать программу в C# на тему &quot;Исследование алгоритмов сортировки методом прямого включения и методом &quot;Шелла&quot;....

Сортировка методом обмена и методом быстрой сортировки - C#
Помогите пожалуйста написать программный код метода обмена и метода быстрой сортировки)

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2012, 21:46
Привет! Вот еще темы с ответами:

Оптимизация методом Фибоначчи - C#
Есть что-то похожее на pascal. program fibonacci; uses crt; const n_m=40; type mas=array of integer; type funo=function...

.NET 4.x Ускорение/оптимизация метода. Решение СЛАУ методом Гаусса - C#
Здравствуйте. Имеется готовый рабочий алгоритм решения СЛАУ методом прямого(приведение к треугольной матрице) и обратного хода Гаусса. Но...

Непонятки с методом сортировки - C#
Собственно проблема не большая, сделал сортировку предложений по количеству символов, но при сортировке у меня получается удаляются знаки...

Записи отсортировать методом цифровой сортировки - C#
Записи отсортировать методом цифровой сортировки, а получающиеся группы записей, количество которых меньше или равно числу М, сортировать...


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

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

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