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

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

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

> Методы сортировки.....
perez
сообщение 26.12.2004 0:37
Сообщение #1


Новичок
*

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

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


Народ, помогите, лаба висит на носу.... Как выглядит сортировка методом просеивания....напишите плиз....можно использовать только ее
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 16)
volvo
сообщение 26.12.2004 0:51
Сообщение #2


Гость






perez
Насколько мне известно,
Цитата
сортировка методом просеивания
это другое название "Сортировки простыми вставками". Описание - в ФАКе

Цитата
поскольку элемент R, как бы "проникает" на положенный ему уровень, этот способ часто называют "просеиванием", или "погружением".


Сообщение отредактировано: volvo - 26.12.2004 1:03
 К началу страницы 
+ Ответить 
perez
сообщение 26.12.2004 1:00
Сообщение #3


Новичок
*

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

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


Точно?)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.12.2004 1:05
Сообщение #4


Гость






perez
Прочитай вот это... :yes:
 К началу страницы 
+ Ответить 
perez
сообщение 26.12.2004 1:08
Сообщение #5


Новичок
*

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

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


Маленькая проблемка, мне для столбцов двумерной матрицы, че где нуно переделать?)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Amro
сообщение 26.12.2004 1:10
Сообщение #6


Пионер
**

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

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


В пирамидальной сортировке тоже что-то говорится о просеивании ... так что может быть и она ...

Сообщение отредактировано: Amro - 26.12.2004 1:11


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.12.2004 1:11
Сообщение #7


Гость






perez
То есть тебе надо сортировать каждый столбец в отдельности? Или что?
 К началу страницы 
+ Ответить 
volvo
сообщение 26.12.2004 1:12
Сообщение #8


Гость






Amro
А по линку ходил (который я дал) ?
 К началу страницы 
+ Ответить 
Amro
сообщение 26.12.2004 1:23
Сообщение #9


Пионер
**

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

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


volvo
Пардон, не ходил, :yessss: однако там говорится что так называется способ, но как я понял не метод, а способ может присутствовать в разных методах smile.gif смотря что понимается в данном случае под просеиванием ....

Сообщение отредактировано: Amro - 26.12.2004 1:24


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
perez
сообщение 26.12.2004 12:40
Сообщение #10


Новичок
*

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

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


Да, каждый столбец нужно отсортировать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
perez
сообщение 26.12.2004 13:32
Сообщение #11


Новичок
*

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

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


Народ, этот способ в факу н пашет..........прога выдает отсортированный массив со 2сэлемента, а первый эелемент меняет на ХРЕНЬ КАКУЮ ТУ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.12.2004 13:48
Сообщение #12


Гость






perez
Это то, что нужно по условию задачи:
Код
const
 n = 4;
 m = 4;
type
 matrix = Array[1 .. n, 1 .. m] Of Integer;


Procedure Insert(Var ar: matrix; currCol: Integer; n: Integer);
Var i, j, T: Integer;
Begin
  For i := 1 To n do
    Begin
      T := ar[i, currcol];
      j := Pred(i);
      While (T < ar[j, currcol]) and (j >= 0) Do
        Begin
          ar[Succ(j), currcol] := ar[j, currcol]; Dec(j);
        End;
      ar[Succ(j), currcol] := T;
    End;
End;

const
 a: matrix =
   ((10,  9,  8,  7),
    ( 6,  5,  4,  3),
    (11, 12, 14, 16),
    (34, 23, 81, 11));
var
 i, j: integer;
begin
 For i := 1 to m do
   Insert(a, i, n);
 for i := 1 to n do
   begin
     for j := 1 to m do
       write(a[i, j]:5);
     writeln
   end;
end.


Цитата
Народ, этот способ в факу н пашет..........прога выдает отсортированный массив со 2сэлемента, а первый эелемент меняет на ХРЕНЬ КАКУЮ ТУ)

Программу можно посмотреть, в которой это произошло? И впредь воздерживайтесь от таких высказываний, т.к. ВСЕ методы сортировки проверены мной лично на примерно 25 тестах...

Сообщение отредактировано: volvo - 26.12.2004 13:50
 К началу страницы 
+ Ответить 
Altair
сообщение 26.12.2004 13:58
Сообщение #13


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

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

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


volvo, имхо у него индексация с нуля начинается..
smile.gif


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


Новичок
*

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

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


Вот майн прога, че в ней не правильно?
Код
program pr5;
uses crt;
type
ta = Array[1 .. 100,1..100] Of Integer;
Var i,n,j,m: Integer;
a : TA;
procedure p5(var a: ta; n,m: integer);
var
i,j,t,l : integer;
begin
for j:=1 to m do
  For i := 2 To n do
    Begin
      T := a[i,j];
      l := Pred(i);
      While (T < a[l,j]) and (l >= 0) Do
        Begin
          a[Succ(l),j] := a[l,j];
           Dec(l,j);
        End;
      a[Succ(l),j] := T;
    End;
    end;
begin
writeln('vvedite n');
read(n,m);
writeln('vvedite e-ti massiva');
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
p5(a,n,m);
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:5);
writeln;
end;
readkey;
end.


Сообщение отредактировано: volvo - 26.12.2004 14:21
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
perez
сообщение 26.12.2004 14:28
Сообщение #15


Новичок
*

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

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


Что то я не понял программу вольво если честно) Что такое currCol/?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.12.2004 14:35
Сообщение #16


Гость






perez
1. В твоей программе -
Код

While (T < a[l,j]) and (l >= 0) Do
 Begin
   a[Succ(l),j] := a[l,j];
   Dec(l,j); { почему так? Должно быть просто Dec(l); }
End;


2. В моей программе: тебе же надо сортировать столбцы по отдельности, вот я и передаю в процедуру сортировки таблицу, и тот столбец, который надо сортировать на этом проходе. (CurrCol - Current Column - текущий столбец.)
 К началу страницы 
+ Ответить 
perez
сообщение 26.12.2004 14:36
Сообщение #17


Новичок
*

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

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


СПАСИБО VOLVO. ВСЕ РАБОТАЕТ) :thanks:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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