![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.10.2011
Сообщений: 98
|
![]()
Помогите пожалуйста написать алгоритм сортировки.
Алгоритм сортировки такой: Делим массив на секции, убывающие и возрастающие. т.к. массив, чаще всего состоит из небольших остортированных подмассивов. возрастающих и убывающих. например, массив 12394187 состоит из возрастающего подмассива 1239, убывающего 41, убывающего 87. нужно разделить массив на подмассивы. Убывающие массивы, мы просто переворачиваем. и получается множество отсортированных подмассивов, которые мы сливаем обычным двоичным слиянием. Скорее всего, нужно брать первы два подмассива - сливать. затем слитый подмассив со следующим подмассивом и так далее. вот что сделала и страшно запуталсь((( : #include <iostream> #include <fstream> #include <conio.h> #include <windows.h> #include <string> #include <vector> using namespace std; int main() { setlocale (LC_ALL, "Russian"); const int N = 20; int a[N]={17, 28, 4, 91, 15, 16, 32, 67, 13, 22, 14, 7, 1, 23, 25, 89, 67, 20, 11, 6};//7 кусочков cout<<"Выводим элементы массива"<<endl; for(int i2=0; i2<N; i2++) { cout<<a[i2]<<" "; } cout<<endl; vector<int> vu; vector<int> vv; vector<int> vobrat; vector<int> vsort; int i=1; while(i<N) { while(a[i-1]<a[i]) { cout<<"Выводим возрастающий массив"<<endl; vv.push_back(a[i-1]); vv.push_back(a[i]); for(int b=0; b<vv.size(); b++) { cout<<vv[b]<<" "; } cout<<endl; i++; } while(a[i-1]>a[i]) { cout<<"Выводим убывающий массив"<<endl; vu.push_back(a[i]); //vu.push_back(a[i+1]); for(int b=0; b<vu.size(); b++) { cout<<vu[b]<<" "; } cout<<endl; for(int k=vu.size()-1; k>0; k--) { cout<<"Переворачиваем массив"<<endl; vobrat.push_back(vu[k]); for(int b=0; b<vu.size(); b++) { cout<<vu[b]<<" "; } cout<<endl; } i++; } } system("pause"); return 0; } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сортировка слиянием (C++) | DarkAltair | Помощь студентам | 7 | 11.10.2011 21:12 |
СОРТИРОВКА СЛИЯНИЕМ | spawn969 | Помощь студентам | 5 | 12.05.2011 01:03 |
Сортировка слиянием | Aндрей | Общие вопросы C/C++ | 3 | 15.04.2010 09:47 |
Сортировка слиянием | maxflint | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 05.12.2009 20:41 |