Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include<stdio.h>
  2. #define MAX 500
  3.  
  4. void mergeSort(int a[], int low, int mid, int high);
  5. void partition(int a[], int low, int high);
  6.  
  7. int main(){
  8. int merge[MAX], i, n;
  9. scanf("%d", &n);
  10. for(i = 0; i<n; i++){
  11. scanf("%d", &merge[i]);
  12. }
  13. partition(merge, 0, n-1);
  14. for(i = 0; i<n; i++){
  15. printf("%d ", merge[i]);
  16. }
  17. printf("\n");
  18.  
  19.  
  20. return 0;
  21.  
  22. }
  23.  
  24. void partition(int a[], int low, int high){
  25. int mid;
  26. if(low<high){
  27. mid = (low+high)/2;
  28. partition(a, low, mid);
  29. partition(a, mid+1, high);
  30. mergeSort(a, low, mid, high);
  31. }
  32. }
  33.  
  34. void mergeSort(int a[], int low, int mid, int high){
  35. int i, m, k, l, temp[MAX];
  36. l = low;
  37. i = low;
  38. m = mid+1;
  39. while((l<=mid) && (m<=high)){
  40. if(a[l]<=a[m]){
  41. temp[i] = a[l];
  42. l++;
  43. }
  44. else{
  45. temp[i] = a[m];
  46. m++;
  47. }
  48. i++;
  49. }
  50.  
  51. if(l>m){
  52. for(k = m; k<=high; k++){
  53. temp[i] = a[k];
  54. i++;
  55. }
  56. }
  57. else{
  58. for(k = l; k<=mid; k++){
  59. temp[i] = a[k];
  60. i++;
  61. }
  62. }
  63. for(k = low; k<=high; k++){
  64. a[k] = temp[k];
  65. }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement