Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Сортировки массивов




  1. Сортировка массива по возрастанию, пузырьковым методом

Просматривается весь массив “сверху вниз” и меняются стоящие рядом элементы в том случае, когда “нижний” элемент меньше, чем “верхний”. Таким образом, после первого просмотра, самый “тяжелый” элемент массива попадает на самое последнее место, т.е. выталкивается в низ. Далее алгоритм повторяется для оставшихся n-1 элементов.

#include<stdio.h>

Void main()

{

const int n=6;

int x[n],i,buf;

for(i=0;i<n;i++){

printf("x[%d]=",i);

scanf("%d",&x[i]);

}

for(int j=1;j<=n;j++){

for(i=0;i<n-1;i++){

if(x[i]>x[i+1]){

buf=x[i];

x[i]=x[i+1];

x[i+1]=buf;

}

}

}

for(i=0;i<n;i++)

printf("x[%d]=%d\n",i,x[i]);

}

  1. Сортировка массива по убыванию, пузырьковым методом
  2. Сортировка массива по возрастанию, выбором наименьшего элемента.

Последовательно проходим весь массив, каждый раз сравнивая i-ый элемент со всеми, находящимися после него, и, найдя наименьший, переставляет его с i-им. Таким образом, после первого просмотра на первом месте оказывается наименьший элемент массива.

#include<stdio.h>

Void main()

{

const int n=6;

int x[n],i,buf,j,k;

for(i=0;i<n;i++){

printf("x[%d]=",i);

scanf("%d",&x[i]);

}

for(i=0;i<=n-1;i++){

k=i;

for(j=i+1;j<n;j++){

if(x[k]>x[j])

k=j;

}

buf=x[i];

x[i]=x[k];

x[k]=buf;

}

for(i=0;i<n;i++)

printf("x[%d]=%d\n",i,x[i]);

}

  1. Сортировка массива по убыванию, выбором наибольшего элемента
  2. Сортировка массива по методу Шелла, по возрастанию.

На начальном этапе сравниваются элементы отстоящих на n/2 друг от друга и если есть необходимость, происходит перемещение этих элементов. Причем сравнение элементов на расстоянии n/2 происходит до тех пор, пока не было ни одного обмена. Далее сравниваются элементы, отстоящие на n/4 и т.д. пока не будут сравниваться соседние элементы.

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

#include<stdio.h>

Void main()

{

const int n=6;

int x[n],i,buf,j,k,k1;

for(i=0;i<n;i++){

printf("x[%d]=",i);

scanf("%d",&x[i]);

}

for(k=n/2;k>0;k/=2){

do{

k1=0;

for(i=0,j=k;j<n;i++,j++){

if(x[i]>x[j]){

buf=x[i];

x[i]=x[j];

x[j]=buf;

k1++;

}

}

}while(k1);

}

for(i=0;i<n;i++)

printf("x[%d]=%d\n",i,x[i]);

}

  1. Сортировка массива по методу Шелла, по убыванию.
  2. Введите два индекса, и поменять местами элементы.
  3. Ввести 20 мерный массив и отсортировать от 0 до 9 пузырьковым методом по возрастанию, и от 10 до 19 нахождением минимального элемента.
  4. Введите два массива целых чисел. Второй массив упорядочен по возрастанию своих значений. Определить, какие числа первого массива входят и во второй массив.

#include<stdio.h>

#define MAXSIZE 100

void main(){






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных