Hi GuyZ,
Shell sort is an alternate version of insertion sort. The algorithm can be read from Wikipedia[^].
Shell sort is an alternate version of insertion sort. The algorithm can be read from Wikipedia[^].
Source Code
#include <iostream> using namespace std; /* Shell Sort Solution - http://www.terminalcoders.blogspot.com Ajith Kp [@ajithkp560] */ void arrange(int *a, int start, int x, int l){ int i = start+x; while(i<l){ int val = a[i]; int pos = i; while(pos>=x && a[pos-x]>val){ a[pos] = a[pos-x]; pos = pos-x; } a[pos] = val; i++; } } void shells(int *a, int l){ int start = l/2; while(start>0){ for(int i=0;i<start;i++){ arrange(a, i, start, l); } cout<<"At the size "<<start<<": "; for(int i=0;i<l;i++) cout<<a[i]<<" "; cout<<endl; start=start/2; } } int main(){ int n, x, a[1024]; cout<<"Enter limit: "; cin>>n; cout<<"Enter "<<n<<" items: "; for(int i=0;i<n;i++) cin>>a[i]; shells(a, n); cout<<"After Sort: "; for(int i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl; }