From 814119552be39385bd540ad359f98c274d4c07b3 Mon Sep 17 00:00:00 2001 From: SURAJ KUMAR SAHU <118847989+sksahu01@users.noreply.github.com> Date: Wed, 8 Oct 2025 19:49:03 +0000 Subject: [PATCH] Add DFS and Quick Sort implementations with recursive and iterative methods --- Algorithms/DFS | Bin 0 -> 22712 bytes Algorithms/DFS.cpp | 65 ++++++++++++++++++++++++++++++++++++++ Algorithms/Quick_Sort | Bin 0 -> 17232 bytes Algorithms/Quick_Sort.cpp | 53 +++++++++++++++++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100755 Algorithms/DFS create mode 100644 Algorithms/DFS.cpp create mode 100755 Algorithms/Quick_Sort create mode 100644 Algorithms/Quick_Sort.cpp diff --git a/Algorithms/DFS b/Algorithms/DFS new file mode 100755 index 0000000000000000000000000000000000000000..d6ca9f9ece980f40ffe5d4ae768d6e74c9170dc1 GIT binary patch literal 22712 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 literal 0 HcmV?d00001 diff --git a/Algorithms/DFS.cpp b/Algorithms/DFS.cpp new file mode 100644 index 0000000..e6aa391 --- /dev/null +++ b/Algorithms/DFS.cpp @@ -0,0 +1,65 @@ +#include +using namespace std; + +void dfs_recursive(int u, const vector>& adj, vector& vis, vector& order) { + vis[u] = true; + order.push_back(u); + for (int v : adj[u]) if (!vis[v]) dfs_recursive(v, adj, vis, order); +} + +vector dfs_iterative(int start, const vector>& adj) { + int n = adj.size(); + vector vis(n, false); + vector order; + stack st; + st.push(start); + while (!st.empty()) { + int u = st.top(); st.pop(); + if (vis[u]) continue; + vis[u] = true; + order.push_back(u); + // push neighbors in reverse to mimic recursive order + for (auto it = adj[u].rbegin(); it != adj[u].rend(); ++it) if (!vis[*it]) st.push(*it); + } + return order; +} + +int main() { + ios::sync_with_stdio(false); + cin.tie(nullptr); + + int n, m; + cout << "DFS (recursive + iterative)\nEnter number of nodes: "; + if (!(cin >> n) || n <= 0) return 0; + cout << "Enter number of edges: "; + cin >> m; + + vector> adj(n); + cout << "Enter edges (u v) 0-based indices, one per line:\n"; + for (int i = 0; i < m; ++i) { + int u, v; cin >> u >> v; + if (u < 0 || u >= n || v < 0 || v >= n) continue; + adj[u].push_back(v); + adj[v].push_back(u); // treat as undirected by default + } + + int start; + cout << "Enter start node: "; + cin >> start; + if (start < 0 || start >= n) start = 0; + + vector vis(n, false); + vector order_rec; + dfs_recursive(start, adj, vis, order_rec); + + cout << "Recursive DFS order: "; + for (int x : order_rec) cout << x << ' '; + cout << '\n'; + + vector order_it = dfs_iterative(start, adj); + cout << "Iterative DFS order: "; + for (int x : order_it) cout << x << ' '; + cout << '\n'; + + return 0; +} diff --git a/Algorithms/Quick_Sort b/Algorithms/Quick_Sort new file mode 100755 index 0000000000000000000000000000000000000000..b1f463ecce01517ec75791c7e70dab4fb7838c14 GIT binary patch literal 17232 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 Zb#+)Smu2T6Gn4+OZm=bmyA)ig_#ceQ{q6t& literal 0 HcmV?d00001 diff --git a/Algorithms/Quick_Sort.cpp b/Algorithms/Quick_Sort.cpp new file mode 100644 index 0000000..16e6471 --- /dev/null +++ b/Algorithms/Quick_Sort.cpp @@ -0,0 +1,53 @@ +#include +using namespace std; + +int partition(vector& a, int low, int high) { + int pivot = a[high]; // choose last element as pivot + int i = low - 1; + for (int j = low; j < high; ++j) { + if (a[j] <= pivot) { + ++i; + swap(a[i], a[j]); + } + } + swap(a[i + 1], a[high]); + return i + 1; +} + +void quickSort(vector& a, int low, int high) { + if (low < high) { + int pi = partition(a, low, high); + quickSort(a, low, pi - 1); + quickSort(a, pi + 1, high); + } +} + +void printArray(const vector& a) { + for (int v : a) cout << v << " "; + cout << '\n'; +} + +int main() { + ios::sync_with_stdio(false); + cin.tie(nullptr); + + int n; + cout << "Quick Sort - Enter number of elements: "; + if (!(cin >> n) || n <= 0) { + cout << "Invalid size\n"; + return 0; + } + + vector a(n); + cout << "Enter " << n << " integers:\n"; + for (int i = 0; i < n; ++i) cin >> a[i]; + + cout << "Original array: "; + printArray(a); + + quickSort(a, 0, n - 1); + + cout << "Sorted array: "; + printArray(a); + return 0; +}