|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.12.2006, 17:26 | #1 |
Новичок
Джуниор
Регистрация: 20.12.2006
Сообщений: 1
|
Помогите решить решенную задачку
Вообще мне надо решить вот это: "Сортировка разделением. Способ разделения : интервал между минимальным и максимальным значениями элементов массива разбить пополам и относительно этого значения разбить массив на две части (с использованием вспомогательных массивов)."
Но, чистя диск, случайно наткнулся на одну прогу. (Откуда взялась – не знаю). Интуитивно догадываюсь, что делает она то что надо. Но врубиться в смысл не могу. Короче, если кому нетрудно, объясните "на пальцах" что она делает. И если это не то что надо, подскажите, как сделать то. Исходняк: \\\\\\\\\\\ #include <stdio.h> void sort(int A[], int n) { int B1[100],B2[100]; int i,i1,i2,s,k; for (s=1; s!=n; s*=2) // Размер группы кратен 2 { for (i=0; i<n/2; i++) // Разделить пополам { B1[i]=A[i]; B2[i]=A[i+n/2]; } i1=i2=0; for (i=0,k=0; i<n; i++) // Слияние с переходом " скачком" { f (i1==s && i2==s) // при достижении границ обеих k+=s,i1=0,i2=0; // групп if (i1==s) A[i]=B2[k+i2++]; else // 4 условия слияния по окончании if (i2==s) A[i]=B1[k+i1++]; else // групп и по сравнению if (B1[k+i1 ] < B2[k+i2 ]) A[i]=B1[k+i1++]; else A[i]=B2[k+i2++]; } } } void main() { int A[]={3,5,7,4,1,6,8,0}; sort(A,8); for (int i=0; i<8; i++) printf("%d ",A[i]); } \\\\\\\\\\\\\\\\\\ Конкретно интересует запись: B1[k+i1++] и ей подобные. Это что и как? P.S. Использовать можно только <stdio.h> |
20.12.2006, 19:38 | #2 | |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
Цитата:
k, i1 - переменные Запись означает, что после этой строки (после присвоения), i1 увеличится на единицу, т.е. за место этой записи: Код:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите решить задачку | rainbow1 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 28.08.2008 16:59 |
помогите решить задачку | gorez | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 08.04.2008 14:49 |
Помогите решить эту задачку | Magic Blood | Microsoft Office Excel | 1 | 16.05.2007 18:17 |
Помогите решить задачку | New | БД в Delphi | 3 | 12.12.2006 19:46 |