Въведение в алгоритма на C ++
Крайният набор от стъпки, подредени последователно, които действат като ръководство за решаване на всеки проблем. Тази дума + алгоритъм c ++ се използва особено в компютърните науки за определяне на процедурата за решаване на сложни проблеми. Архитектурата на решението може да бъде различна за различните алгоритми. Най-ефективният алгоритъм е този, който осигурява решението за по-малко време и изразходва по-малко памет в сравнение с други алгоритмични решения. В заглавката на C ++ се намират функциите, предназначени да работят в числовите диапазони. Тези функции работят на броя, но не правят никакви манипулации с данните. Той просто работи, докато итерира или посочва числата, без да докосва данните му.
Някои функции на члена под заглавката са:
- алгоритъм :: adjacent_find (): Показва първото възникване на две еднакви последователни числа.
- алгоритъм :: all_of (): Връща вярно, ако числата лежат под диапазона на първия и последния елемент.
- алгоритъм :: binary_search (): Проверява дали „стойността, която се търси“ присъства в подредената последователност или не.
- алгоритъм :: copy (): Тази функция помага при копирането на набор от елементи от едно място до новото място.
- алгоритъм :: count_if (): Тази функция връща броя на появата на определени елементи, ако условието, споменато в „ако условие“, е изпълнено.
- алгоритъм :: равни (): Тази функция тества дали две групи елементи са равни или не. Има много подобни функции, предварително дефинирани в C ++, които могат да бъдат съдени от кодери в полза на техния бизнес.
Обяснение на алгоритма на C ++
C ++ предоставя версии на тези алгоритми в пространството на имена std :: range. Алгоритмите са обширната тема, която обхваща теми от търсене, сортиране до мин / макс купи. Те могат да бъдат категоризирани като:
1. Heap: В такива типове конструираме купчина, за да открием максималната или минималната стойност на последователността. Това използваше структурата на данните на дърветата, за да постигне своята продукция.
2. Двоично търсене: Този C ++ алгоритъм разделя цялата последователност на две части итеративно, докато не намери действителната стойност, която търсим от целевата последователност. Това е високо ефективен алгоритъм, тъй като намалява времето наполовина. Предварителното условие за използване на този алгоритъм C ++ е последователността, предоставена му, да бъде сортирана във всеки ред.
3. Сортиране: Има различни видове сортиране, които могат да бъдат използвани за генериране на сортирана последователност. Те са сортиране на вмъкване, сортиране на балон, сортиране на селекция, сортиране на купчина, бързо сортиране, сортиране на сливане Някои от тези алгоритми работят на принципа на "разделяй и владей" като сливане и бързо сортиране. Те са бързи и ефективни в сравнение с други, въпреки че използват повече памет в своите операции.
4. Прости операции над последователността: Алгоритмите могат да се използват за извършване на прости операции като замяна, премахване, преобръщане на числата в последователност. Има много начини да се достигне до този изход, като се използват различни алгоритми, всички които имат за цел да постигнат един и същ резултат.
5. Немодифициращи операции: Някои операции като търсене, намиране, преброяване на броя елементи в последователността. Тези операции не променят стойностите на данните на елемента, но функционират около тези елементи.
Пример за алгоритми със стъпки
Ето няколко примера за алгоритъма C ++ със стъпки, обяснени по-долу:
Пример №1
Напишете алгоритъм C ++, за да напишете програма, която да добавите две числа.
алгоритъм
Стъпки са дадени по-долу:
- начало
- Приемете num1, num 2
- Сума = num1 + num2
- Показване на сумата
- Спри се
Пример №2
Напишете алгоритъм на C ++, за да определите дали студентът е пропуснат или не, въз основа на оценките. Степенките са средната стойност на получените оценки по всички предмети.
алгоритъм
Стъпки са дадени по-долу:
- начало
- Въведени марки1, маркировки2, маркировки3, маркировки4
- Степен = (Марки1 + Марки2 + Марки3 + Марки4) / 4
- Ако (степен <50) тогава
- Печат „Fail“
- още
- Отпечатайте „Pass“
- Край ако
- Спри се
Пример №3
Bubble Sort - Това е алгоритъмът C ++ за сортиране на числовата последователност във възходящ или низходящ ред. Той сравнява най-близките две числа и поставя малкия пред по-голямо число, ако се сортира във възходящ ред. Този процес продължава, докато достигнем последователност, в която намираме всички числа, подредени в последователност.
Временната сложност на този алгоритъм е O (n), тъй като контролите трябва да преминат през целия брой елементи, които са в последователността, и след това да проверят дали са сортирани 2 съседни числа. Ако не, то сортира и се премества към другите две съседни двойки от поредицата.
Изпълнение на горния алгоритъм C ++
Ето примера на алгоритъма C ++ с прилагане на код, даден по-долу:
Код:
#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;
)
изход:
заключение
C ++ алгоритъмът е подробно стъпка по стъпка общо ръководство за решение, което е проектирано като се фокусира, за да осигури най-ефикасното и по-малко времеемко решение на всеки предоставен проблем. Има много инструменти за проверка на ефективността на алгоритмите като големи О нотации, Омега или Gama нотации, което е полезно да се намери ефикасността на алгоритмите. Всеки алгоритъм има своите привилегии и предимства и ние избираме правилното подходящо решение според изявлението на проблема. Това играе решаваща роля, когато проектираме решение на проблема, тъй като той се превръща в основа на ефективността на крайния продукт.
Препоръчителни статии
Това е ръководство за алгоритма C ++. Тук обсъждаме въвеждането и подробното обяснение на алгоритъма C ++, заедно с различните примери и реализация на код. Можете също да разгледате следните статии, за да научите повече -
- 3D масиви в C ++
- Ръст срещу C ++
- Абстрактен клас по C ++
- Претоварване и преодоляване в C ++
- Деклариране на абстрактния клас в C # с пример