Double Insertion Sort is a variation on Insertion Sort that
Solution
1)The time complexity for the Double Insertion Sort is
Worst case O(n);
Best Case O(n);
Average Case O(n);
2)Executed in Dev C++
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system(\"pause\") or input loop */
int main(int argc, char** argv) {
int arr[20],i,j,n,k,mid,temp;
cout << \"\\t\\tWelcome to Double Insertion Sort\ \";
cout << \"Enter size of array:\\t\";
cin >> n;
cout << \"Enter array elements:\ \";
for(i=0;i<n;i++){
cin >> arr[i];
}
mid = n/2;
cout <<\"\\t\"<< mid << \"\ \" ;
if(n % 2 == 0){
cout << \"EVEN array :\ \";
for(k=0;k<n;k++){
for(i=mid-1;i>=0;i--){
for(j=mid;j<n;j++){
cout << i << \"\\t\" << j << \"\ \" ;
if(arr[i] >= arr[j]){
temp=arr[i];
arr[i] = arr[j];
arr[j] = temp;
break;
}
else{
break;
}
}
mid ++;
}
}
}
else{
cout << \"ODD array:\ \";
//for(k=0;k<n;k++){
for(i=mid-1;i>=0;i--){
for(j=mid+1;j<n;j++){
cout << i << \"\\t\" << j << \"\ \" ;
if(arr[i] >= arr[j]){
temp=arr[i];
arr[i] = arr[j];
arr[j] = temp;
break;
}
else{
break;
}
}
mid++;
}
//}
}
cout << \"Array after sort:\ \";
for(i=0;i<n;i++){
cout << arr[i] << \"\\t\" ;
}
return 0;
}

