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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2018, 16:38   #91
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от сфинкс Посмотреть сообщение
внезапно включился правильно алгоритм
Внезапно?
Вот теперь да, работает правильно.
Случайный массив из 10,000,000 сортирует за 2,3 сек.
Пока отстает от встроеного сортировщика в 2 раза:
Встроенный SortArray за 1.04 сек.
kvitaliy вне форума Ответить с цитированием
Старый 11.10.2018, 16:51   #92
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

приветствую создание алгоритма

Русская Сортировка Половинами и скорая и человеческая
Russian Sorting Halves and fast and human

на других языках программирования

и хорошо бы подключились школы применяя
алгоритм и для простого ускорения в 4 раза и рекурсию
и на олимпиадах и для общего развития

только проверять и улучшать могу лишь basic
а всякие c c++ c# python delphi pascal и др.
авторам придётся доделывать самостоятельно

и раз новая страница тогда небось лучше
ежели кто поможет с визуализацией
лучше всего когда несколько сортировок на странице

и мне известны 3 приличные страницы
сортирующие в прямом эфире главное одновременно
и хорошо бы добавить их визуализации в тему


http://growingwiththeweb.com/project...ng-visualiser/

http://anim.ide.sk/sorting_algorithms_1.php
http://anim.ide.sk/sorting_algorithms_2.php

https://nayuki.io/page/sorting-algorithms-demo-java




приветствую создание алгоритма РСП/RSH на других языках программирования
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 12.10.2018 в 10:50.
сфинкс вне форума Ответить с цитированием
Старый 11.10.2018, 17:03   #93
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от сфинкс Посмотреть сообщение
и не знаю как считывается с диска и как пишет на диск
Считать 1 строку с числом
Код:
If ReadFile(0, "N.txt")    
     n = Val(ReadString(0))
     CloseFile(0)   
Else
  MessageRequester("Information","Ошибка нет file!")
EndIf
записать содержимое массива в файл
Код:
If OpenFile(0, "SortRussianSortingHalvesDAV.txt")
    For k=1 To n  
      WriteString (0, " " + d(k) )
    Next
    CloseFile(0)
EndIf
kvitaliy вне форума Ответить с цитированием
Старый 11.10.2018, 20:06   #94
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

PureBasic Русская Сортировка Половинами и скорая и человеческая
PureBasic Russian Sorting Halves and fast and human

считывает только количество из c:/N.txt
удобно чтобы обходиться без оболочки PureBasic
и сортировав хоть миллиарды пишет по 1000
наименьших и наибольших в c:/RSH_DAV.txt

PureBasic Russian Sorting Halves Recursive
сортирует 1000000 за 0,3 секунды

Код:
; Russian Sorting Halves Danilin
OpenConsole()
Declare RussianSortingHalvesDAV (Lev, Prv, Zikl, Nauka)

;n=12345678

If ReadFile(0, "c:/N.txt") 
n = Val(ReadString(0))
CloseFile(0) 
EndIf

Nauka=Int(1+(Log(n)/Log(2)))
Global Dim d(n) 
Global Dim a(n) 

For i=1 To n
;d(i)=Random(n,1) ; случайные значения от 1 до n
d(i)=n-i+1;
Next 

; вывод исходных значений до сортировки
PrintN(" Исходный без сортировки Первые 20")
For k=1 To 20: Print(" "+ d(k)): Next: PrintN("")
PrintN(" Последние 10")
For k=n-9 To n : Print(" "+ d(k)): Next: PrintN("")

start=ElapsedMilliseconds() ; таймер 

If Nauka > 0 :
RussianSortingHalvesDAV(1, n, 1, Nauka)
EndIf

finish=ElapsedMilliseconds() ; таймер 

PrintN("RussianSorting Первые 50")
For k=1 To 50: Print(" "+ d(k)): Next: PrintN("")
PrintN(" Последние 20")
For k=n-19 To n : Print(" "+ d(k)): Next: PrintN("")

PrintN( "Время сортровки RussianSorting = " + Str(finish-start))

If OpenFile(0, "c:/RSH_DAV.txt")
For k=1 To 1000 :WriteString (0, " " +d(k)): Next
For k=n-1001 To n :WriteString (0, " " +d(k)): Next
CloseFile(0)
EndIf

Input()
End

; Процедура сортировки
Procedure RussianSortingHalvesDAV (Lev, Prv, Zikl, Nauka)

If Prv-Lev < 1 :ProcedureReturn 0
EndIf 

For i=Lev To Prv
SM=SM+d(i)
Next
Sred=SM/(Prv-Lev+1)

Levo=Lev-1
Prav=Prv+1

For j=Lev To Prv
If d(j) <= Sred: 
Levo=Levo+1: Mesto=Levo: 
Else 
Prav=Prav-1: Mesto=Prav:
EndIf
a(Mesto)=d(j)
Next

For w=Lev To Prv: d(w)=a(w): Next

If Zikl < Nauka :
If Levo >= Lev :RussianSortingHalvesDAV(Lev, Levo, Zikl+1, Nauka)
EndIf
If Prav < Prv :RussianSortingHalvesDAV(Prav, Prv, Zikl+1, Nauka)
EndIf
EndIf

EndProcedure
и наверняка данную программу удобно использовать
для самостоятельной переработки в
c c++ c# python delphi pascal java и др.
лучше всего компилирующие ехе

и ещё доделан алгоритм для excel внедрив свою строку
независимо от единомышленника ведь у того упор на мультик
и сортирует 250 элементов 2 минуты
а у меня главное скорость и сортирует 250 элементов 5 секунд

в сложившемся алгоритме слабое место:
переброс массива промежуточного в исходный

и возможно здесь поможет команда копии массива
но больше помогли бы команды суммы в массиве
чтобы обойтись без главного цикла суммы
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 12.10.2018 в 16:29.
сфинкс вне форума Ответить с цитированием
Старый 14.10.2018, 14:15   #95
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

Русская Сортировка Третями
распределяющая: меньше трети и больше двух третей
выглядит бесконечно при рекурсии
ведь непонятно как переходить между третями

Зато делить массив на 3/9/27 частей очевидно легко
в то время как Русская сортировка половинами делит
массив на 2/4/8 частей как Русская Сортировка Осьмушками

Ещё результат экспериментов для предыдущего языка:
копия массива результатов в данные только целиком ухудшает
и больше преуспеют языки где есть быстрый подсчёт суммы
и копирование части массива результатов в массив данных

И ещё создал версии с международными названиями переменных

Далее приветствую переработку алгоритма на другие языки
ведь представляется здесь классная задача для Олимпиад

Код:
' Русская сортировка половинами Данилин
' Russian Sorting Halves Danilin

DECLARE SUB RussianSortingHalvesDAV (ab!, yz!, part!, age!)
CLOSE
OPEN "c:/N.txt" FOR INPUT AS #5
INPUT #5, n: PRINT n

'n = 123456

age = 1 + LOG(n) / LOG(2)
PRINT n, age

DIM SHARED d(n) 'AS LONG
DIM SHARED a(n) 'AS LONG

'OPEN "c:/ISX.txt" FOR INPUT AS #1
'FOR i=1 TO n: INPUT #1, d(i): NEXT

FOR i = 1 TO n: d(i) = n - i + 1: NEXT ' INT(RND * n)
'FOR i = 1 TO n STEP 2: d(i) = n - i + 1: d(i + 1) = d(i): NEXT ' INT(RND * n)
'FOR i = 1 TO n: d(i) = INT(RND * n): NEXT '

IF n < 17 THEN FOR k = 1 TO n: PRINT d(k);: NEXT: PRINT
IF n > 16 THEN FOR k = n - 8 TO n: PRINT d(k);: NEXT: PRINT

start = TIMER

IF age > 0 THEN
 CALL RussianSortingHalvesDAV(1, n, 1, age)
END IF

finish = TIMER

IF n < 17 THEN FOR k = 1 TO n: PRINT d(k);: NEXT: PRINT
IF n > 16 THEN FOR k = n - 8 TO n: PRINT d(k);: NEXT: PRINT

PRINT finish - start

OPEN "c:/=RuSortHalves_dav.txt" FOR OUTPUT AS #2
PRINT #2, finish - start; "sekund "
PRINT #2, n; "elements", "RECURSION"
FOR i = 1 TO 22: PRINT #2, d(i): NEXT
FOR i = n - 22 TO n: PRINT #2, d(i): NEXT

FOR k = 1 TO 20: PRINT d(k);: NEXT: PRINT: PRINT
FOR k = n - 9 TO n: PRINT d(k);: NEXT: PRINT: PRINT

END

SUB RussianSortingHalvesDAV (ab, yz, part, age)

IF yz - ab < 1 THEN EXIT SUB

FOR i = ab TO yz
 summa = summa + d(i)
NEXT
middle = summa / (yz - ab + 1)

abc = ab - 1
xyz = yz + 1

FOR i = ab TO yz
 IF d(i) < middle THEN abc = abc + 1: place = abc: ELSE xyz = xyz - 1: place = xyz
 a(place) = d(i)
NEXT

FOR i = ab TO yz: d(i) = a(i): NEXT

IF part < age THEN
 IF abc >= ab THEN CALL RussianSortingHalvesDAV(ab, abc, part + 1, age)
 IF xyz <= yz THEN CALL RussianSortingHalvesDAV(xyz, yz, part + 1, age)
END IF

END SUB
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 15.10.2018 в 12:24.
сфинкс вне форума Ответить с цитированием
Старый 15.10.2018, 23:53   #96
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

Улучшение и ускорение:
выключена переменная места в строках:

Код:
; PureBasic
For j=ab To yz
If d(j) <= middle: 
abc=abc+1: a(abc)=d(j)
Else 
xyz=xyz-1: a(xyz)=d(j)
EndIf

' QB64 Qbasic QuickBasic
FOR i=ab TO yz
 IF d(i) < middle THEN abc=abc+1: a(abc)=d(i): ELSE xyz=xyz-1: a(xyz)=d(i)
NEXT

' Excel
For j=j1 To j2
If .Cells(1, j) < Average Then
Left=Left+1
.Cells(7, Left)=.Cells(1, j)
Else
Right=Right-1
.Cells(7, Right)=.Cells(1, j)
End If
Next
а ведь улучшения могли придумать на Олимпиадах
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 20.10.2018, 12:42   #97
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

на следующей странице размещу сложившиеся версии
универсальные и с минимумом комментариев

идея увеличения массива в 2 раза
и оперирование началом и концом не получилась

идея прибавлять и вычитать после работы с массивом
без операций +/- до цикла почему-то замедляет и ошибается

индивидуальный массив уровней замедляет
и ошибается из-за чётно/нечётного финиша ячеек

замена числа 1 везде на переменную с именем
например one проверено для разных типов данных:

ускорила qb64 с 2,2 до 2,09 секунд
и замедлила pb с 0,3 до 0,4 секунд

для сортировки 1'000'000 элементов

причём версия qb64 x64 медленнее x32

и хорошо если существуют языки высокого уровня
реализующие суммы части массива и инкремент и декремент

сложность алгоритма: O(N) = 3*N*LOG(N;2)

складывается из: 1) сумма и среднее
2) группировка в новый массив
3) возврат в исходный массив
и количество уровней учитывает деление половинами
и название не противоречит выражению "большая половина"

подарок: визуализация 5 сортировок
работает без интернета скачанная в компьютер
http://math.hws.edu/eck/js/sorting/xSortLab.html

и ещё учитывая: ведь проверить смогут все
только компилированные ехе
значит интересует какие языки создают ехе
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 20.10.2018 в 13:58.
сфинкс вне форума Ответить с цитированием
Старый 27.10.2018, 14:49   #98
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

Russian Sorting Halves and fast and human
sorts 1'000'000 in 0.2 seconds on C# Csharp

Код:
// RUSSIAN SORTING HALVES DANILIN
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace davApp
{
    class Program
    {
        private long age;
        static long[] a;
        static long[] d;

        static void Main(string[] args)
        {
            int n = 0;
            // READ NUMBERS
            var inpFile = new StreamReader("N.txt");
            n = Convert.ToInt32(inpFile.ReadLine());
            inpFile.Close();

            var age = 1 + Math.Log(n) / Math.Log(2);

            Console.WriteLine(n);

            a = new long[n + 1];
            d = new long[n + 1];

            for (int i = 1; i <= n; i++)
                d[i] = n - i + 1;

            //var rand = new Random();
            //// RANDOM [1;n]
            //for (int i = 1; i <= n; i++)
            //    d[i] = rand.Next(1, n);

            // REAN N LINE FROM FILE
            //inpFile = new StreamReader("ISX.txt");
            //for (int i = 1; i <= n; i++)
            //    d[i] = Convert.ToInt64(inpFile.ReadLine());
            //inpFile.Close();

            // WRITE ON SCREEN
            int m = Math.Min(n, 20);
            for (int i = 1; i <= m; i++)
                Console.Write("{0} ", d[i]);
            Console.WriteLine();

            // RUSSIAN SORTING HALVES DANILIN
            var start = DateTime.Now;
            if (age > 0)
                dav(1, n, 1, age);
            var finish = DateTime.Now;

            Console.WriteLine("{0} second", (finish - start).TotalSeconds);

            // WRITE ON SCREEN
            Console.WriteLine("[1..{0}]", m);
            for (int i = 1; i <= m; i++)
                Console.Write("{0} ", d[i]);
            Console.WriteLine();

            // WRITE ON SCREEN
            Console.WriteLine("[{0}..{1}]", n - m + 1, n);
            for (int i = n - m + 1; i <= n; i++)
                Console.Write("{0} ", d[i]);
            Console.WriteLine();

            // WRITE IN FILE
            var outFile = new StreamWriter("dav.txt");
            for (int i = 1; i <= m; i++)
                outFile.WriteLine(d[i]);
            outFile.WriteLine();

            for (int i = n - m + 1; i <= n; i++)
                outFile.WriteLine(d[i]);
            outFile.WriteLine();
            outFile.Close();

            Console.WriteLine("Press any key");
            Console.ReadKey();
        }

        static void dav(int ab, int yz, int part, double age)
        {
            if (yz - ab < 1)
                return;

            long summa = 0;
            for (int i = ab; i <= yz; i++)
                summa = summa + d[i];

            double middle = summa / (yz - ab + 1.0);

            var abc = ab - 1;
            var xyz = yz + 1;

            for (int i = ab; i <= yz; i++)
                if (d[i] < middle)
                {
                    abc = abc + 1;
                    a[abc] = d[i];
                }
                else
                {
                    xyz = xyz - 1;
                    a[xyz] = d[i];
                }

            for (int i = ab; i <= yz; i++)
                d[i] = a[i];

            if (part < age)
            {
                if (abc >= ab) dav(ab, abc, part + 1, age);
                if (xyz <= yz) dav(xyz, yz, part + 1, age);
            }
            return;
        }
    }
}
Russian Sorting Halves and fast and human
sorts 1'000'000 in 2.2 seconds on QB64
sorts 1'000'000 in 0.3 seconds on PureBasic
sorts 1'000'000 in 0.2 seconds on C# Csharp
sorts 1'000'000 in 0.15 seconds on FreeBasic
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 27.10.2018 в 17:52.
сфинкс вне форума Ответить с цитированием
Старый 30.10.2018, 16:27   #99
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

Доказательство ускорения в 4 раза
деления пузырьковой сортировки на 4 части

Код:
// Russian Sorting Halves 4 part accelerate bubble sorting 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace octoberApp
{
    class Program
    {
        static int n;
        static double[] d;
        static double[] a;
        static double[] v;
        static int[] q;

        static void Main(string[] args)
        {
            n = 57539; 

            d = new double[n+1];
            a = new double[n+1];
            v = new double[n+1];
            q = new int[5+1];
            var rand = new Random();
            for (int i = 1; i <= n; i++)
                d[i] = Math.Truncate(rand.NextDouble() * n);

            for (int i = 1; i <= 10; i++)
                Console.Write("{0} ", d[i]);
            Console.WriteLine();

            for (int i = n - 9; i <= n; i++)
                Console.Write("{0} ", d[i]);
            Console.WriteLine();
            Console.WriteLine();

            var start = DateTime.Now;
            var s = 0;
            //ALL
            double summa = 0;
            for (int i = 1; i <= n; i++)
                summa += d[i];
            double middle = summa / n;
            var y = 1;
            var z = 0;

            for (int i = 1; i <= n; i++)
                if (d[i] < middle)
                {
                    a[y] = d[i]; y++;
                }
                else
                {
                    a[n - z] = d[i];
                    z++;
                }

            q[3] = y - 1;
            Console.WriteLine("ALL middle = {0}", middle);

            for (int i = 1; i <= 10; i++)
                Console.Write("{0} ", a[i]);
            Console.WriteLine();
            Console.WriteLine();
            for (int i = n - 9; i <= n; i++)
                Console.Write("{0} ", a[i]);
            Console.WriteLine();
            Console.WriteLine();

            // 1 FROM 2
            summa = 0;
            for (int i = 1; i <= q[3]; i++)
                summa += a[i];

            middle = summa / q[3];
            y = 1;
            z = 0;
            Console.WriteLine("1 FROM 2 = {0} 1 ...{1}", middle, q[3]);

            for (int i = 1; i <= q[3]; i++)
                if (a[i] < middle)
                {
                    v[y] = a[i]; y++;
                }
                else
                {
                    v[q[3] - z] = a[i];
                    z++;
                }

            for (int i = 1; i <= 10; i++)
                Console.Write("{0} ", v[i]);
            Console.WriteLine();
            for (int i = q[3] - 9; i <= q[3]; i++)
                Console.Write("{0} ", v[i]);
            Console.WriteLine();
            Console.WriteLine();

            q[2] = y - 1;

            // 2 FROM 2
            summa = 0;
            for (int i = q[3] + 1; i <= n; i++)
                summa += a[i];
            middle = summa / (1 + n - q[3]);
            y = q[3];
            z = 0;
            Console.WriteLine("2 FROM 2 = {0} {1}...{2}", middle, q[3] + 1, n);
            for (int i = q[3]; i <= n; i++)
                if (a[i] < middle)
                {
                    v[y] = a[i]; y++;
                }
                else
                {
                    v[n - z] = a[i];
                    z++;
                }
            for (int i = q[3]; i <= q[3] + 10; i++)
                Console.Write("{0} ", v[i]);
            Console.WriteLine();
            for (int i = n - 9; i <= n; i++)
                Console.Write("{0} ", v[i]);
            Console.WriteLine();
            Console.WriteLine();

            q[4] = y - 1;
            q[1] = 2;
            q[5] = n;

            //BUBBLE
            Console.WriteLine("1= {0} 2= {1} 3= {2} 4= {3} 5= {4}", 1, q[2], q[3], q[4], n);
            Console.WriteLine();

            for (int t = 1; t <= 4; t++)
                for (int i = q[t] - 1; i <= q[t + 1]; i++)
                    for (int j = i + 1; j <= q[t + 1]; j++)
                        if (v[i] > v[j])
                        {
                            var x = v[i];
                            v[i] = v[j];
                            v[j] = x;
                            s++;
                        }

            var finish = DateTime.Now;

            for (int i = 1; i <= 10; i++)
                Console.Write("{0} ", v[i]);
            Console.WriteLine();

            for (int i = n - 9; i <= n; i++)
                Console.Write("{0} ", v[i]);
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("DArus4 {0} second swap {1}", (finish - start).TotalSeconds, s);

            var outFile = new System.IO.StreamWriter("RUoct.txt");
            outFile.WriteLine("DArus4 {0} second swap {1}", (finish - start).TotalSeconds, s);
            outFile.WriteLine("{0} 4 parts bubble ", n);

            for (int i = 1; i <= n / 2; i++)
                outFile.WriteLine(v[i]);
            for (int i = n / 2; i <= n; i++)
                outFile.WriteLine(v[i]);

            outFile.Close();

            start = DateTime.Now;
            s = 0;

            for (int i = 1; i <= n; i++)
                for (int j = i + 1; j <= n; j++)
                    if (d[i] > d[j])
                    {
                        var x = d[i];
                        d[i] = d[j];
                        d[j] = x;
                        s++;
                    }
            finish = DateTime.Now;

            Console.WriteLine("BUBBLE {0} second swap {1}", (finish - start).TotalSeconds, s);

            Console.WriteLine("Press any key");
            Console.ReadKey();
        }
    }
}


Z = N*(N-1)/2
Z = 4*(N/4*(N/4-1)/2+2*N/4)
Z = log(N;2)*(N/log(N;2)*(N/log(N;2)-1)/2+2*N/log(N;2))

Русская сортировка половинами важные действия визуализация



создав варианты на C# и на qb64
сложились примеры обучения обоим языкам
включая и циклы и условия и вывод
и лично я понимаю и доделывал сам
и компилятор C# есть у всех: csc exe



деление массива на 4 части мгновенное
имя q(3) будет заменено на имя попроще

но попытки разделения за 2 вложенных цикла
разбиваются о порядок точек середин 3 2 4

что приводит к массивам с 2-йными скобками
что усложняет понимание и лучше применить

говорящие переменные типа средний3
оставив 3 цикла раздельными
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 31.10.2018 в 00:23.
сфинкс вне форума Ответить с цитированием
Старый 07.11.2018, 13:27   #100
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

Наиболее перспективно для изучения информатики
и для подготовки к олимпиадам по информатике

Русская сортировка половинами помогает изучить:

массивы многомерные
рекурсия
логарифм
интеграл
чтение с диска
присваивание
типы данных
вычисление
случайные
условие
обмен
время
инкремент
декремент
циклы вложенные
индексы индексов
варианты условий
варианты циклов
вывод на экран
запись на диск
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Быстрая сортировка(сортировка хаора) с++ LustHunter Помощь студентам 3 07.10.2011 19:37
quickSort, Быстрая сортировка массива kzht91 Помощь студентам 1 17.04.2010 00:30
быстрая сортировка настолько быстрая Serg12 Помощь студентам 8 28.03.2010 21:31