fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  5. void MergeSort();
  6. void Merging();
  7.  
  8. int main(){
  9. int arr[100];
  10. int i;
  11. for(i=0;i<5;i++){
  12. scanf("%d",&arr[i]);
  13. }
  14. printf("Unsorted\n");
  15. for(i=0;i<5;i++){
  16. printf("%d ",arr[i]);
  17. }
  18. printf("\n");
  19.  
  20. MergeSort(arr,0,4);
  21.  
  22. printf("Sorted\n");
  23. for(i=0;i<5;i++){
  24. printf("%d ",arr[i]);
  25. }
  26.  
  27. return 0;
  28. }
  29. void MergeSort(int arr[],int l,int h){
  30. if(l<h){
  31. int mid = (l+h)/2;
  32. MergeSort(arr,l,mid);
  33. MergeSort(arr,mid+1,h);
  34. Merging(arr,l,mid,h);
  35. }
  36. }
  37. void Merging(int arr[], int l, int mid, int h){
  38. int i1 = l,i2 = mid+1, j1 = mid, j2 = h;
  39. int b[6];
  40. int k=l;
  41. while(i1<=j1&&i2<=j2){
  42. if(arr[i1]<arr[i2]){
  43. b[k++] = arr[i1++];
  44. }else{
  45. b[k++] = arr[i2++];
  46. }
  47. }
  48. while(i1<=j1){
  49. b[k++] = arr[i1++];
  50. }
  51. while(i2<=j2){
  52. b[k++] = arr[i2++];
  53. }
  54. int i;
  55. for(i=l;i<=h;i++){
  56. arr[i] = b[i];
  57. }
  58. }
Success #stdin #stdout 0s 4284KB
stdin
3
1
2
4
2
stdout
Unsorted
3 1 2 4 2 
Sorted
1 2 2 3 4