SORTING TECHNIQUE

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

SELECTION SORT BUBBLE SORT

void bubbleSort(int arr[], int n)


void selectionSort(vector<int>&arr)
{
{
for( int i = n-1; i>=0;i--)
int n = arr.size();
{
for( int i=0;i<n;i++)
for(int j=0;j<i;j++)
{
{
int mini=i;
if(arr[j]>arr[j+1])
for( int j =i;j<n;j++)
{
{
int temp = arr[j];
if(arr[j]<arr[mini])
arr[j]=arr[j+1];
{
arr[j+1]=temp;
mini=j;
}
}
}
}
swap(arr[mini],arr[i]);
}
}
}
}

INSERTION SORT BUBBLE SORT(RECURSIVE METHOD)


void insertionSort(int arr[], int n)
void bubbleSort(int arr[], int n)
{
{ if (n==1)
for(int i=0;i<n;i++)
return;
{
int didswap=0;
int j=i;
for(int j=0;j<=n-2;j++)
while(j>0 && arr[j-1]>arr[j])
{
{
if(arr[j]>arr[j+1])
int temp = arr[j-1];
{
arr[j-1]=arr[j];
int temp = arr[j+1];
arr[j]=temp;
arr[j+1]=arr[j];
j--;
arr[j]=temp;
}
didswap =1;
}
}
}
}
if(didswap==0)
return;
bubbleSort(arr,n-1);
}
INSERTION SORT MERGE SORT
#include<bits/stdc++.h>
void insertionSort(int arr[], int n)
using namespace std;
{
void merge(int arr[], int l, int mid, int r)
if (n <= 1)
{
return;
vector<int> ans;
insertionSort(arr, n - 1);
int left = l;
int key = arr[n - 1];
int right = mid + 1;
int j = n - 2;
while (left <= mid && right <= r)
while (j >= 0 && arr[j] > key)
{
{
if (arr[left] <= arr[right])
arr[j + 1] = arr[j];
{
j--;
ans.push_back(arr[left]);
}
left++;
arr[j + 1] = key;
}
}
else
QUICK SORT {
int partitionArray(int input[], int ans.push_back(arr[right]);
start, int end) right++;
{ }
int pivot = input[start]; }
int left = start; while (left <= mid)
int right=end; {
while(left<right) ans.push_back(arr[left]);
{ left++;
while(pivot>=input[left]&& }
left<=end-1) while (right <= r)
left++; {
while(pivot<=input[right]&& ans.push_back(arr[right]);
right>=start+1) right++;
right--; }
if(left<right) for (int i = l; i <= r; i++)
{
swap(input[left],input[right]); arr[i] = ans[i - l];
} }
swap(input[start],input[right]); }
return right;
} void mergeSort(int arr[], int l, int r)
void quickSort(int input[], int start, {
int end) if (l >= r)
{ return;
if(start<end) int mid = l + (r - l) / 2;
{ mergeSort(arr, l, mid);
int partition= mergeSort(arr, mid + 1, r);
partitionArray(input,start,end); merge(arr, l, mid, r);
quickSort(input,start,partition-1); }
quickSort(input,partition+1,end);
}
}

You might also like