Skip to content

Commit 70583e6

Browse files
committed
feat: insertion sort in c++
1 parent 637140b commit 70583e6

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

Diff for: sortingAlgo/insertionSort/insertionSort.cc

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include<iostream>
2+
3+
using namespace std;
4+
5+
void insertionsort(int a[], int n) {
6+
for(int i = 1; i < n; ++i) {
7+
int j = i-1;
8+
int key = a[i];
9+
while(j > -1 && a[j] > key) {
10+
swap(a[j+1], a[j]);
11+
--j;
12+
}
13+
a[j+1] = key;
14+
}
15+
}
16+
17+
void insertionsort_rec(int a[], int n) {
18+
if(n < 2) return;
19+
insertionsort_rec(a, n-1);
20+
21+
int key = a[n-1];
22+
int j = n-2;
23+
24+
while(j > -1 && a[j] > key) {
25+
swap(a[j+1], a[j]);
26+
--j;
27+
}
28+
29+
a[j+1] = key;
30+
31+
}
32+
33+
int main() {
34+
int arr[10] = {3, 450, 12, 4, -1, 0, 24, 95, 123, 0};
35+
for(int i = 0; i < 10; ++i)
36+
cout << *(arr+i) << ' ';
37+
cout << endl;
38+
insertionsort_rec(arr, 10);
39+
for(int i = 0; i < 10; ++i)
40+
cout << *(arr+i) << ' ';
41+
return 0;
42+
}

0 commit comments

Comments
 (0)