diff --git a/bubble.cpp b/bubble.cpp new file mode 100644 index 0000000000..966faaedac --- /dev/null +++ b/bubble.cpp @@ -0,0 +1,38 @@ +#include +using namespace std; + +void display(vector A, int n) +{ + cout << endl; + for (auto i : A) + cout << i << " "; +} + +void B_S(vector &A, int n) +{ + for (int i = 0; i < n - 1; i++) + { + for (int j = 0; j < n - 1 - i; j++) + { + if (A[j] > A[j + 1]) + swap(A[j], A[j + 1]); + } + } +} + +int main() +{ + vector V; + int ch, n; + cout << "size: "; + cin >> n; + cout << "ENTER ARRY: "; + for (int i = 0; i < n; i++) + { + cin >> ch; + V.push_back(ch); + } + + B_S(V, n); + display(V, n); +} \ No newline at end of file diff --git a/bubble.exe b/bubble.exe new file mode 100644 index 0000000000..9a2a27b822 Binary files /dev/null and b/bubble.exe differ diff --git a/bucket.cpp b/bucket.cpp new file mode 100644 index 0000000000..b9ec34ba17 --- /dev/null +++ b/bucket.cpp @@ -0,0 +1,34 @@ +#include +using namespace std; + +void display(vector A, int n) +{ + cout << endl; + for (auto i : A) + cout << i << " "; +} + +void B_S(vector &A, int n) +{ + vector B[n]; + for(int i=0;i V; + int ch, n; + cout << "size: "; + cin >> n; + cout << "ENTER ARRY: "; + for (int i = 0; i < n; i++) + { + cin >> ch; + V.push_back(ch); + } + + B_S(V, n); + display(V, n); +} \ No newline at end of file diff --git a/bucket2.cpp b/bucket2.cpp new file mode 100644 index 0000000000..b66babe68c --- /dev/null +++ b/bucket2.cpp @@ -0,0 +1,35 @@ + +#include +using namespace std; + +void bucketSort(float arr[], int n) +{ + + vector b[n]; + + for (int i = 0; i < n; i++) + { + int bi = n * arr[i]; // Index in bucket + b[bi].push_back(arr[i]); + } + + for (int i = 0; i < n; i++) + sort(b[i].begin(), b[i].end()); + + int index = 0; + for (int i = 0; i < n; i++) + for (int j = 0; j < b[i].size(); j++) + arr[index++] = b[i][j]; +} + +int main() +{ + float arr[] = {0.897, 0.565, 0.656, 0.1234, 0.665, 0.3434}; + int n = sizeof(arr) / sizeof(arr[0]); + bucketSort(arr, n); + + cout << "Sorted array is \n"; + for (int i = 0; i < n; i++) + cout << arr[i] << " "; + return 0; +} diff --git a/counting.cpp b/counting.cpp new file mode 100644 index 0000000000..83be23678d --- /dev/null +++ b/counting.cpp @@ -0,0 +1,42 @@ +#include +using namespace std; +#define RANGE 255 +#define ll long long int + +vector countSort(vector arr) +{ + ll max = INT_MIN; + for (auto i : arr) + { + if (i > max) + max = i; + } + vector F(max + 1, 0); + for (auto i : arr) + F[i]++; + // Commulative + for (int i = 1; i <= arr.size(); i++) + { + F[i] = F[i] + F[i - 1]; + } + vector ans(arr.size(), 0); + for (int i = 0; i < arr.size(); i++) + { + F[arr[i]]--; + ans[F[arr[i]]] = arr[i]; + } + return ans; +} + +int main() +{ + ll n; + cin >> n; + vector V(n); + for (auto &i : V) + cin >> i; + V = countSort(V); + cout << endl; + for (auto i : V) + cout << i << " "; +} diff --git a/counting.exe b/counting.exe new file mode 100644 index 0000000000..c1b1e8d208 Binary files /dev/null and b/counting.exe differ diff --git a/heap.cpp b/heap.cpp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/insertion.cpp b/insertion.cpp new file mode 100644 index 0000000000..ec8e298687 --- /dev/null +++ b/insertion.cpp @@ -0,0 +1,40 @@ +#include +using namespace std; + +void display(vector A, int n) +{ + cout << endl; + for (auto i : A) + cout << i << " "; +} + +void I_S(vector &A, int n) +{ + for (int i = 1; i < n; i++) + { + int j = i - 1, key = A[i]; + while (j >= 0 && A[j] > key) + { + A[j + 1] = A[j]; + j--; + } + A[j + 1] = key; + } +} + +int main() +{ + vector V; + int ch, n; + cout << "size: "; + cin >> n; + cout << "ENTER ARRY: "; + for (int i = 0; i < n; i++) + { + cin >> ch; + V.push_back(ch); + } + + I_S(V, n); + display(V, n); +} \ No newline at end of file diff --git a/insertion.exe b/insertion.exe new file mode 100644 index 0000000000..a9464db91a Binary files /dev/null and b/insertion.exe differ diff --git a/merge.cpp b/merge.cpp new file mode 100644 index 0000000000..2a187cf2af --- /dev/null +++ b/merge.cpp @@ -0,0 +1,76 @@ +#include +using namespace std; + +void display(vector A, int n) +{ + cout << endl; + for (auto i : A) + cout << i << " "; +} + +void merge(int f, int mid, int l, vector &A){ + vector temp; + int i=f,j=mid+1; + while(i<=mid && j<=l) + { + if(A[i]A[j]) + { + temp.push_back(A[j]); + j++; + } + else + { + temp.push_back(A[i]); + temp.push_back(A[j]); + j++; + i++; + } + } + while(i<=mid) + { + temp.push_back(A[i]); + i++; + } + while(j<=l) + { + temp.push_back(A[j]); + j++; + } + + for(auto i:temp){ + A[f]=i; + f++; + } +} +void M_S(vector &A, int n,int f,int l) +{ + if(f>=l) + return; + int mid=(f+l)/2; + M_S(A,n,f,mid); + M_S(A,n,mid+1,l); + merge(f,mid,l,A); + display(A, n); +} + +int main() +{ + vector V; + int ch, n; + cout << "size: "; + cin >> n; + cout << "ENTER ARRY: "; + for (int i = 0; i < n; i++) + { + cin >> ch; + V.push_back(ch); + } + + M_S(V, n, 0, n-1); + +} \ No newline at end of file diff --git a/merge.exe b/merge.exe new file mode 100644 index 0000000000..f8dfc12b69 Binary files /dev/null and b/merge.exe differ diff --git a/quick.cpp b/quick.cpp new file mode 100644 index 0000000000..342f22044b --- /dev/null +++ b/quick.cpp @@ -0,0 +1,55 @@ +#include +using namespace std; + +void display(vector A, int n) +{ + cout << endl; + for (auto i : A) + cout << i << " "; +} + +void Q_S(vector &A, int n,int f,int l) +{ + if(f>=l) + return; + if(l-f==1) + { + if(A[l]=j) + { + if(A[j]>pivot && A[i]pivot) + i--; + if(A[j] V; + int ch, n; + cout << "size: "; + cin >> n; + cout << "ENTER ARRY: "; + for (int i = 0; i < n; i++) + { + cin >> ch; + V.push_back(ch); + } + + Q_S(V, n, 0, n-1); + display(V, n); +} \ No newline at end of file diff --git a/quick.exe b/quick.exe new file mode 100644 index 0000000000..65bbbe9a1b Binary files /dev/null and b/quick.exe differ diff --git a/radix.cpp b/radix.cpp new file mode 100644 index 0000000000..f2eb1eec06 --- /dev/null +++ b/radix.cpp @@ -0,0 +1,49 @@ + +#include +using namespace std; + +int getMax(int arr[], int n) +{ + int mx = arr[0]; + for (int i = 1; i < n; i++) + if (arr[i] > mx) + mx = arr[i]; + return mx; +} + +void countSort(int arr[], int n, int exp) +{ + int output[n]; + int i, count[10] = { 0 }; + for (i = 0; i < n; i++) + count[(arr[i] / exp) % 10]++; + for (i = 1; i < 10; i++) + count[i] += count[i - 1]; + for (i = n - 1; i >= 0; i--) { + output[count[(arr[i] / exp) % 10] - 1] = arr[i]; + count[(arr[i] / exp) % 10]--; + } + for (i = 0; i < n; i++) + arr[i] = output[i]; +} + +void radixsort(int arr[], int n) +{ + int m = getMax(arr, n); + for (int exp = 1; m / exp > 0; exp *= 10) + countSort(arr, n, exp); +} + +void print(int arr[], int n) +{ + for (int i = 0; i < n; i++) + cout << arr[i] << " "; +} +int main() +{ + int arr[] = { 170, 45, 75, 90, 802, 24, 2, 66 }; + int n = sizeof(arr) / sizeof(arr[0]); + radixsort(arr, n); + print(arr, n); + return 0; +} \ No newline at end of file diff --git a/radix.exe b/radix.exe new file mode 100644 index 0000000000..b02fced788 Binary files /dev/null and b/radix.exe differ diff --git a/selection.cpp b/selection.cpp new file mode 100644 index 0000000000..505600e5d9 --- /dev/null +++ b/selection.cpp @@ -0,0 +1,44 @@ +#include +using namespace std; + +void display(vector A, int n) +{ + cout << endl; + for (auto i : A) + cout << i << " "; +} + +void S_S(vector &A, int n) +{ + for (int i = 0; i < n - 1; i++) + { + int min = A[i]; + int pos = i; + for (int j = i + 1; j < n; j++) + { + if (A[j] < min) + { + min = A[j]; + pos = j; + } + } + swap(A[i], A[pos]); + } +} + +int main() +{ + vector V; + int ch, n; + cout << "size: "; + cin >> n; + cout << "ENTER ARRY: "; + for (int i = 0; i < n; i++) + { + cin >> ch; + V.push_back(ch); + } + + S_S(V, n); + display(V, n); +} \ No newline at end of file diff --git a/selection.exe b/selection.exe new file mode 100644 index 0000000000..7e4d0039dd Binary files /dev/null and b/selection.exe differ diff --git a/shell.cpp b/shell.cpp new file mode 100644 index 0000000000..97c5a2ae52 --- /dev/null +++ b/shell.cpp @@ -0,0 +1,51 @@ +#include +using namespace std; + +void display(vector A, int n){ + cout< &A, int n){ + int interval=1; + while(interval=1) + { + for(int i=interval;i=0 && A[j]>key) + { + A[j+interval]=A[j]; + j=j-interval; + } + A[j+interval]=key; + display(A,n); + cout< V; + int ch,n; + cout<<"size: "; + cin>>n; + cout<<"ENTER ARRY: "; + for(int i=0;i>ch; + V.push_back(ch); + } + + Sh_S(V,n); + display(V,n); +} \ No newline at end of file diff --git a/shell.exe b/shell.exe new file mode 100644 index 0000000000..b2a58eb9d1 Binary files /dev/null and b/shell.exe differ diff --git a/tempCodeRunnerFile.cpp b/tempCodeRunnerFile.cpp new file mode 100644 index 0000000000..44ff299a33 --- /dev/null +++ b/tempCodeRunnerFile.cpp @@ -0,0 +1 @@ +display(A,n); \ No newline at end of file