C++ program to sort an array of elements using Insertion Sort
Aim:
To write a program to an array of elements using insertion sort technique.
Algorithm:
INSERTION ( A, N)
This algorithm sorts an array A with N elements.
- Set A[0] : = -∞. [Initializes sentinel element]
-
Repeat steps 3 to 5 for K = 2,3, . . . . , N:
-
Set TEMP : = A[K] and PTR : = K-1.
-
Repeat while TEMP<A[PTR]:
(a) Set A[PTR+1] : = A[PTR]. [Moves element forward.]
(b) Set PTR : = PTR – 1.
[End of loop]
5. Set A[PTR+1] : = TEMP. [Inserts element in proper place.]
[End of step 2 loop.]
6. Return.
Program code:
#include<iostream.h>
#include<conio.h>
#include<process.h>
class insertion
{
int i,n,a[20];
public:
void insert()
{
cout<<"Enter the array length : ";
cin>>n;
cout<<"Enter the elements : ";
for(i=1;i<=n;i++)
{
cin>>a[i];
}
}
void sort()
{
int t,k,p;
a[0]=-100;
for(k=2;k<=n;k++)
{
t=a[k];
p=k-1;
while(t<a[p])
{
a[p+1]=a[p];
p=p-1;
}
a[p+1]=t;
}
)
void display()
{
cout<<"\nSorted array is \n":
for(i=1;i<=n;i++)
cout<<" "<<a[i];
}
};
void main()
{
clrscr();
insertion s;
s.insert();
s.sort();
s.display();
getch();
}
Output:
Enter the array length : 6
Enter the elements : 1 8 3 7 2 6
Sorted array is
1 2 3 6 7 8