SORTING Bubble Sort Insertion Sort Selection Sort Shell

SORTING • Bubble Sort • Insertion Sort • Selection Sort • Shell Sort • Quick Sort • Merge Sort
![BUBBLE SORT void bubble(int x[], int n) { int i, j, tmp; for(i=0; i<n; BUBBLE SORT void bubble(int x[], int n) { int i, j, tmp; for(i=0; i<n;](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-2.jpg)
BUBBLE SORT void bubble(int x[], int n) { int i, j, tmp; for(i=0; i<n; i++) { for(j=0; j<n-1; j++) { if(x[j]>x[j+1]) { tmp=x[j]; x[j]=x[j+1]; x[j+1]=tmp; } }
![INSERTION SORT void insertion(int x[], int n) { int i, j, temp; for(i=0; i<n; INSERTION SORT void insertion(int x[], int n) { int i, j, temp; for(i=0; i<n;](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-3.jpg)
INSERTION SORT void insertion(int x[], int n) { int i, j, temp; for(i=0; i<n; i++) { temp=x[i]; for(j=i-1; j>=0; j--) { if(temp<x[j]) x[j+1]=x[j]; else break; } x[j+1]=temp; } }
![SELECTION SORT void selection(int x[], int n) { int i, j, large, pos, nc=0; SELECTION SORT void selection(int x[], int n) { int i, j, large, pos, nc=0;](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-4.jpg)
SELECTION SORT void selection(int x[], int n) { int i, j, large, pos, nc=0; for (i = n-1; i>0; i--){ large = x[0]; pos = 0; for (j = 1; j<=i; j++) { nc++; if (x[j] > large){ large = x[j]; pos = j; } /* end of if*/ } /* end of for loop */ x[pos] = x[i]; x[i] = large; } /*end of outer for loop */ printf("n Number of comparisons required = %d", nc); }
![SHELL SORT void shelsort (int x[], int n, int inc[], int nofinc) { int SHELL SORT void shelsort (int x[], int n, int inc[], int nofinc) { int](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-5.jpg)
SHELL SORT void shelsort (int x[], int n, int inc[], int nofinc) { int i, j, k, span, temp; static int nc=0; for (i=0; i< nofinc; i++){ /* span is the size of the increment */ span = inc[i]; for (j=span; j<n; j++){ /* insert element x[j] into its proper within its subsets */ nc++; temp = x[j]; for (k=j-span; k>=0 && temp< x[k]; k=k-span) x[k+span]=x[k]; x[k+span]=temp; }/*end of j inner for loop */ }/* end of i outer for loop */ printf("n Number of comparisons required = %d", nc); }
![QUICK SORT qsort(int x[], int lb, int ub) { int loc; loc=lb; if(lb< ub) QUICK SORT qsort(int x[], int lb, int ub) { int loc; loc=lb; if(lb< ub)](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-6.jpg)
QUICK SORT qsort(int x[], int lb, int ub) { int loc; loc=lb; if(lb< ub) { partition(x, lb, ub, loc); qsort(x, lb, loc-1); qsort(x, loc+1, ub); } return; }
![CONTINUED…. . partition(int x[], int beg, int end, int loc) { int i, j, CONTINUED…. . partition(int x[], int beg, int end, int loc) { int i, j,](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-7.jpg)
CONTINUED…. . partition(int x[], int beg, int end, int loc) { int i, j, done, tmp; done=0; i=beg; j=end; loc=beg; while(done==0) { while(x[loc]<=x[j] && loc!=j) j=j-1; if(loc==j) done=1; else if(x[loc]>x[j]) { tmp=x[loc]; x[loc]=x[j]; x[j]=tmp; loc=j; }
![CONTINUED…. . if(done==0) { while(x[loc]>=x[i] && loc!=i) i=i+1; } if(loc==i) done=1; else if(x[loc]<x[i]) { CONTINUED…. . if(done==0) { while(x[loc]>=x[i] && loc!=i) i=i+1; } if(loc==i) done=1; else if(x[loc]<x[i]) {](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-8.jpg)
CONTINUED…. . if(done==0) { while(x[loc]>=x[i] && loc!=i) i=i+1; } if(loc==i) done=1; else if(x[loc]<x[i]) { tmp=x[loc]; x[loc]=x[i]; x[i]=tmp; loc=i; } } return; }

MERGE SORT void merge_sort(int low, int high) { int mid; if(low<high) { mid=(low+high)/2; merge_sort(low, mid); merge_sort(mid+1, high); merge(low, mid, high); } }
![void merge(int low, int mid, int high) { int h, i, j, b[50], k; void merge(int low, int mid, int high) { int h, i, j, b[50], k;](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-10.jpg)
void merge(int low, int mid, int high) { int h, i, j, b[50], k; h=low; i=low; j=mid+1; while((h<=mid)&&(j<=high)) { if(a[h]<=a[j]) { b[i]=a[h]; h++; } else { b[i]=a[j]; j++; } i++; }
![if(h>mid) { for(k=j; k<=high; k++) { b[i]=a[k]; i++; }} else { for(k=h; k<=mid; k++) if(h>mid) { for(k=j; k<=high; k++) { b[i]=a[k]; i++; }} else { for(k=h; k<=mid; k++)](http://slidetodoc.com/presentation_image_h2/a06f382aa6dd884d6bf1873acaf6f9ab/image-11.jpg)
if(h>mid) { for(k=j; k<=high; k++) { b[i]=a[k]; i++; }} else { for(k=h; k<=mid; k++) { b[i]=a[k]; i++; } } for(k=low; k<=high; k++) a[k]=b[k]; }
- Slides: 11