IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Сортировка выборкой корня N
fynjy
сообщение 9.06.2005 22:14
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Ув. кодеры, у меня к вам просьба! Помогите с задачей.
Препод задал на лабу написать прогу, которая сортирует массив выборкой корня из N, где N длинна массива.
Облазил что только можно и нашёл прогу которая сортирует таким методом! Но там ограниченые пределы. т.е. длинна массива: 16, корень: 4. Надеялся прокатит. Не прокатило. Препод сказал что ему надо написать эту прогу через списки. Дальше у меня никаких идей.

В общем есть массив длинной N, достаём корень N и если выходит не целое число, то округляем к большему. Потом делим массив на корень N частей по корень N елементов и (дальше я не могу понять, говорю на пальцах как я понял) сортируем каждую часть так что б меньший елемент наружу вылазил. В общем ахтунг. Кто поможет, того расцелую. :p2:


ЗЫ: облазил факи и поисковик юзал - не нашёл... :/ Помогите плз. 13-го надо сдать, и так завалил уже зачёт...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
volvo
сообщение 9.06.2005 22:38
Сообщение #2


Гость






Цитата(fynjy @ 9.06.05 22:14)
Препод задал на лабу написать прогу, которая сортирует массив выборкой корня из N, где N длинна массива.

Метод квадратичной выборки... Возьми присоединенный архив, там есть программа kurs-12.pas она работает с массивами длинной до 1600 элементов...


Прикрепленные файлы
Прикрепленный файл  Kurs_12.zip ( 12.76 килобайт ) Кол-во скачиваний: 294
 К началу страницы 
+ Ответить 
fynjy
сообщение 10.06.2005 14:27
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Я какраз показывал преподу эту прогу (редактировал ессесно).. он не принял... что делать... понятия не имею...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 10.06.2005 14:45
Сообщение #4


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


а почему не принял?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
fynjy
сообщение 10.06.2005 17:07
Сообщение #5





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


приблизительно: у вас очень ограниченые рамки, корень N выставляется вручную... В общем ему не нравится что прога многое делает не автоматически(эх, вот такой он... дядя Женя.. с факультета Кибернетики, универ Шевченко...) unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.06.2005 19:21
Сообщение #6


Гость






Цитата(fynjy @ 10.06.05 17:07)
у вас очень ограниченые рамки, корень N выставляется вручную...

Ничего себе, "ограниченные рамки"!!! 1600 элементов blink.gif
Кстати, чтобы не было претензий по "ручной работе", определение корня тоже можно свалить на компилятор... Вместо этого:
const
SqrtMax = 40;
...
var
B : Array [1..SqrtMax] Of Integer;
W : Array [1..SqrtMax] Of Integer;

работай с "кучей":
type
PSqrtArray = ^sqrtArray;
sqrtArray: array[1 .. (maxint div sizeof(integer))] of integer;
Var
B, W: PSqrtArray;
...
{ в программе: }
GetMem(B, Succ(Trunc(max))*SizeOf(integer));
GetMem(W, Succ(Trunc(max))*SizeOf(integer));

...
{ когда закончил работу - очисть память: }
FreeMem(B, Succ(Trunc(max))*SizeOf(integer));
FreeMem(W, Succ(Trunc(max))*SizeOf(integer));
...

после этого вся разница будет заключаться в том, что вместо B[i] нужно будет разыменовать указатель: B^[i], но зато претензий насчет "мало автоматических действий" не будет... :yes:
 К началу страницы 
+ Ответить 
fynjy
сообщение 10.06.2005 23:33
Сообщение #7





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


оооо.. блин.. вот наверно про это он и говорил! volvo, я тебя лублу smile.gif)))))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dice
сообщение 20.11.2005 16:39
Сообщение #8


Гость






Volvo, спасибо огромное!!! yes2.gif Случайно набрел на этот форум, мне тоже этим методом сортировать задали!
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:28
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"