Увод у алгоритам Ц ++
Коначни скуп корака распоређених узастопно који делује као водич за решавање било којег проблема. Ова реч + алгоритам ц ++ се посебно користи у рачунарској науци да би се дефинисала процедура за решавање сложених проблема. Архитектура решења може бити различита за различите алгоритме. Најефикаснији алгоритам је онај који нуди решење за мање времена и заузима мање меморије у поређењу с другим алгоритмичким решењима. У заглављу Ц ++ налазе се функције дизајниране за рад на бројчаним распонима. Ове функције раде на броју, али не врше никакве манипулације подацима. Једноставно ради док итерира или показује на бројеве без додиривања података.
Неке функције члана у заглављу су:
- алгоритам :: адјацент_финд (): Показује прво појављивање два идентична узастопна броја.
- алгоритам :: алл_оф (): Враћа тачно ако су бројеви испод распона првог и последњег елемента.
- алгоритам :: бинари_сеарцх (): Провера да ли је „вредност за претраживање“ присутна у сортираном низу или не.
- алгоритам :: цопи (): Ова функција помаже у копирању низа елемената са једне локације на нову локацију.
- алгоритам :: цоунт_иф (): Ова функција враћа број појава одређених елемената ако је испуњен услов споменут у „ако је услов“.
- алгоритам :: једнак (): Ова функција тестира да ли су два низа елемената једнака или не. Постоји пуно сличних функција унапред дефинисаних у Ц ++, које кодери могу тужити у корист свог пословања.
Објашњење алгоритма Ц ++
Ц ++ пружа верзије ових алгоритама у простору имена стд :: ранге. Алгоритми су велика тема која покрива теме од претраживања, сортирања до мин / мак групе. Они се могу категорисати као:
1. Хеап: У таквим типовима конструирамо хеоп како бисмо сазнали мак или мин вредност секвенце. Ово је користило структуру података о дрвећу да би се постигао њен резултат.
2. Бинарна претрага: Овај Ц ++ алгоритам дели целокупну секвенцу на два дела итеративно док не нађе стварну вредност коју тражимо из циљаног низа. То је веома ефикасан алгоритам јер смањује време за пола. Прелиминарни услов да се користи овај Ц ++ алгоритам је да редослед који му је дат треба да буде сортиран у било којем редоследу.
3. Сортирање: Постоје различите врсте сортирања које се могу користити за генерисање сортиране секвенце. Они су врста уметања, сортирање мехурића, сортирање селекције, сортирање хеапплеја, брзо сортирање, спајање сортирања. Неки од ових алгоритама раде на принципу „поделите и владајте“ попут спајања и брзог сортирања. Они су брзи и ефикасни у поређењу с другима, иако користе више меморије у свом раду.
4. Једноставне операције у слиједу: Алгоритми се могу користити за обављање једноставних операција попут замјене, уклањања, преокретања бројева у низу. Постоји много начина да се дође до овог резултата коришћењем различитих алгоритама чији је циљ постизање истог резултата.
5. Операције без модификације: Неке операције попут претраге, проналаска, бројања броја елемената у низу. Ове операције не мењају вредности података елемента, али функционишу око тих елемената.
Пример алгоритама са корацима
Ево неколико примера алгоритма Ц ++ са корацима објашњеним у наставку:
Пример # 1
Написите алгоритам Ц ++ да бисте написали програм за додавање два броја.
Алгоритам
Кораци су дати у наставку:
- Почетак
- Прихвати нум1, број 2
- Збир = број1 + број2
- Прикажи суму
- Зауставити
Пример бр. 2
Напишите алгоритам Ц ++ да бисте утврдили да ли је студент прошао или није успео на основу оцена. Оцене су просек укупних оцена добијених по свим предметима.
Алгоритам
Кораци су дати у наставку:
- Почетак
- Унос Ознаке1, Маркс2, Маркс3, Маркс4
- Оцена = (Маркс1 + Маркс2 + Маркс3 + Маркс4) / 4
- Ако је (оцена <50)
- Испис „Фаил“
- Остало
- Испис „Пасс“
- Крај ако
- Зауставити
Пример бр. 3
Буббле Сорт - Ово је алгоритам Ц ++ за сортирање бројевних низова у растућем или силазном редоследу. Поређује најближа два броја и малу ставља испред већег броја ако је сортирано узлазним редоследом. Овај процес се наставља све док не стигнемо до низа у којем пронађемо све бројеве поређане у низу.
Временска сложеност овог алгоритма је О (н), јер контроле морају проћи сав број елемената који се налазе у низу и затим проверити да ли су сортирана два суседна броја. Ако не, онда се сортира и пребацује на друга два суседна пара у низу.
Имплементација горе наведеног Ц ++ алгоритма
Ево примера алгоритма Ц ++ са имплементацијом кода датим у даљем тексту:
Шифра:
#include
void swap(int *p1, int *p2)
(
int temp = *p1;
*p1 = *p2;
*p2 = temp;
)
// This is an optimised code for the bubble sort
void bSort(int arrnumbers(), int n)
(
int i, j;
bool check;
for (i = 0; i < n-1; i++)
(
check = false;
for (j = 0; j < ni-1; j++)
(
if (arrnumbers(j) > arrnumbers(j+1))
(
swap(&arrnumbers(j), &arrnumbers(j+1));
check = true;
)
)
// We are breaking from the loop in case two elements were not swapped by inner loop.
if (check == false)
break;
)
)
//This function is to print the array sequence as final output after sorting
void print(int arrnumbers(), int sizeofarray)
(
int i;
for (i=0; i < sizeofarray; i++)
printf("%d ", arrnumbers(i));
)
// This the main program from where the execution will start
int main()
(
int arrnumbers() = (5, 6, 1, 0, 2, 9);
int n = sizeof(arrnumbers)/sizeof(arrnumbers(0));
bSort(arrnumbers, n);
printf("Sorted array: \n");
print(arrnumbers, n);
return 0;
)
Излаз:
Закључак
Ц ++ алгоритам је детаљни, корак по корак водич за генеричко решење који је осмишљен тако да има фокус у циљу пружања најефикаснијег и мање времена решења за сваки понуђени проблем. Постоји много алата за провјеру ефикасности алгоритама попут великих Ох нотација, Омега или Гама записа који су корисни за проналажење ефикасности алгоритама. Сваки алгоритам има своју привилегију и предности, а ми изаберемо одговарајуће решење према изјави проблема. Ово игра пресудну улогу када дизајнирамо решење проблема, јер оно постаје основа учинка финалног производа.
Препоручени чланци
Ово је водич за Ц ++ алгоритам. Овдје ћемо расправљати о увођењу и детаљном објашњењу алгоритма Ц ++, заједно с различитим примјерима и имплементацијом кода. Такође можете погледати следеће чланке да бисте сазнали више -
- 3Д низови у Ц ++
- Руст вс Ц ++
- Сажетак класе Ц ++
- Преоптерећење и прегласавање у Ц ++
- Изјава апстрактне класе у Ц # са примером