Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Мелкая1997
-16 / 0 / 0
Регистрация: 20.09.2017
Сообщений: 52
1

Найти k-ое по порядку число среди элементов массива шейкерской сортировкой

17.10.2017, 21:47. Просмотров 268. Ответов 3
Метки нет (Все метки)

Найти k-ое по порядку число среди элементов массива(шейкерской сортировкой)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2017, 21:47
Ответы с готовыми решениями:

Найти минимальное число среди положительных элементов массива
Найти минимальное число среди положительных элементов массива А(1:70)

Найти максимальное число среди повторяющихся элементов массива
Помогите решить задачку всем заранее спасибо 8-)! Дан двумерный массив 6,6 нужно найти...

Найти среднее арифметическое число среди элементов отсортированного массива
(Помогите) Я просто пока не понял что такое типизированная константа. Задан одномерный массив...

Найти минимальное число среди элементов массива с индексом, кратным 3
1.Найти минимальное число среди элементов массива Е, индекс которых кратный 3 ( N -количество...

ЭВМ Жмакина. Найти минимальное положительное число среди 14 элементов массива
Вот характеристика последовательности: Минимальное положительное число; n=14; Сделать нужно в...

3
Kukstyler
18.10.2017, 10:16
  #2

Не по теме:

Мелкая1997, Вам уже не раз тут помогли. Может пора самой попытки хотя бы делать, Вы же хотите чему-то научиться? Или нет? :)

0
Мелкая1997
-16 / 0 / 0
Регистрация: 20.09.2017
Сообщений: 52
18.10.2017, 22:32  [ТС] 3
Kukstyler, Найти k-ое по порядку число среди элементов массива это вроде получается, а как реализовать в коде шейкерскую сортировку?:
#include <iostream>
using namespace std;
#include <clocale>
#include <conio.h>
#include <time.h>
int counter1;
int counter2;
int seach_medium(int L, int R, int mas[])
{
int left, right, medium, ind_med;
left=mas[L];
right=mas[R];
ind_med=(L+R+1)/2;
medium=mas[ind_med];
counter1++;
if ((left==medium) && (medium==right))
{
int i=L;
counter1++;
while ((mas[i]==medium) && (i<R))
i++;
counter1++;
if (mas[i]!=medium)
{
ind_med=i;
medium=mas[ind_med];
}
}
counter1++;
if ((left==medium) && (medium==right))
return -1;
else
{
counter1++;
if (left<=medium)
{
counter1++;
if (medium<=right)
return ind_med;
else
{
counter1++;
if (left<=right)
return R;
else return L;
}
}
else
{
counter1++;
if (left>=right)
{
counter1++;
if (medium>=right)
return ind_med;
else return R;
}
else return L;
}
}
}
void sort(int mas[], int L, int R)
{
int med_item, med_ind, t, i, j;
med_ind=seach_medium(L,R,mas);
if (med_ind!=-1)
{
med_item=mas[med_ind];
i=L;
j=R;
while (i<=j)
{
counter1++;
while (mas[i]<med_item)
i++;
counter1++;
while (mas[j]>med_item)
j--;
if (i<=j)
{
t=mas[i];
mas[i]=mas[j];
mas[j]=t;
i++;
j--;
counter2++;
}
}
if (L<j)
sort(mas,L,j);
if (i<R)
sort(mas,i,R);
}
}
void main()
{
setlocale(LC_ALL,"rus");
counter1=0;
counter2=0;
cout<<"Введите количество элементов: ";
0
Kukstyler
Mayorista nolimpiopescado
788 / 511 / 165
Регистрация: 02.04.2009
Сообщений: 2,256
19.10.2017, 09:34 4
Мелкая1997, используйте тег [CLANG] [/CLANG] а не [TABLE] [/TABLE].

По-ходу, кажется, это С++ а не С
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2017, 09:34

Массив: Найти среди элементов массива число, квадрат которого имеет максимальное значение.
Даны целые числа х1, х2, х3,....х12. Найти среди них число, квадрат которого имеет максимальное...

Найти наибольший среди элементов кратных 6 и наименьший среди нечетных элементов массива
помогите с задачкой пожалуйста Задан массив Х(N). Найти наибольший среди элементов кратных 6 и...

Подсчитать число элементов массива, предшествующих первому по порядку нулевому элементу
помогите сделать программу В массиве чисел D3 : D13 подсчитать число элементов, предшествующих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru