Final_CPP_Programs_with_Outputs
Final_CPP_Programs_with_Outputs
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {1, 3, 5, 7, 9, 11};
int key = 7;
cout << "Linear Search Result: " << linearSearch(arr, 0, key) << endl;
cout << "Binary Search Result: " << binarySearch(arr, 0, arr.size() - 1, key) << endl;
return 0;
}
Heap Sort
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {4, 10, 3, 5, 1};
heapSort(arr);
for (int i : arr) cout << i << " ";
cout << endl;
return 0;
}
Merge Sort
#include <iostream>
#include <vector>
using namespace std;
int i = 0, j = 0, k = left;
while (i < n1 && j < n2) {
if (L[i] <= R[j]) {
arr[k] = L[i];
i++;
} else {
arr[k] = R[j];
j++;
}
k++;
}
int main() {
vector<int> arr = {12, 11, 13, 5, 6, 7};
mergeSort(arr, 0, arr.size() - 1);
for (int i : arr) cout << i << " ";
cout << endl;
return 0;
}
Selection Sort
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {64, 25, 12, 22, 11};
selectionSort(arr);
for (int i : arr) cout << i << " ";
cout << endl;
return 0;
}
Insertion Sort
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {12, 11, 13, 5, 6};
insertionSort(arr);
for (int i : arr) cout << i << " ";
cout << endl;
return 0;
}
Quick Sort
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {10, 7, 8, 9, 1, 5};
quickSort(arr, 0, arr.size() - 1);
for (int i : arr) cout << i << " ";
cout << endl;
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Item {
int value, weight;
double ratio;
};
bool compare(Item a, Item b) {
return a.ratio > b.ratio;
}
int main() {
vector<Item> items = {{60, 10}, {100, 20}, {120, 30}};
for (auto& item : items) item.ratio = (double)item.value / item.weight;
int W = 50;
cout << "Maximum value in Knapsack = " << knapsackGreedy(items, W) << endl;
return 0;
}
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
int tsp(vector<vector<int>>& graph, vector<bool>& visited, int currPos, int n, int count, int
cost, int& ans) {
if (count == n && graph[currPos][0]) {
ans = min(ans, cost + graph[currPos][0]);
return ans;
}
int main() {
vector<vector<int>> graph = {
{0, 10, 15, 20},
{10, 0, 35, 25},
{15, 35, 0, 30},
{20, 25, 30, 0}
};
int n = graph.size();
vector<bool> visited(n, false);
visited[0] = true;
int ans = INT_MAX;
cout << "Minimum cost of TSP: " << tsp(graph, visited, 0, n, 1, 0, ans) << endl;
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Edge {
int src, dest, weight;
};
vector<Edge> result;
int cost = 0;
for (auto& edge : edges) {
int p1 = findParent(edge.src, parent);
int p2 = findParent(edge.dest, parent);
if (p1 != p2) {
result.push_back(edge);
cost += edge.weight;
parent[p1] = p2;
}
}
int main() {
vector<Edge> edges = {{0, 1, 10}, {0, 2, 6}, {0, 3, 5}, {1, 3, 15}, {2, 3, 4}};
int V = 4; // Number of vertices
kruskal(edges, V);
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
return true;
}
int main() {
int n = 8;
vector<vector<int>> board(n, vector<int>(n, 0));
if (solveNQUtil(board, 0, n))
printSolution(board, n);
else
cout << "Solution does not exist";
return 0;
}