Guest User

Untitled

a guest
Jul 22nd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void merge();
  5. int mergesort();
  6.  
  7. void merge(int a[], int p, int r, int q){
  8. int i, j, k, Asize=0;
  9. int *c;
  10. while(a[Asize++] != '\0');
  11. c = new int [Asize-1];
  12. i=p;
  13. j=q+1;
  14. k=p;
  15. while((i<=q)&&(j<=r)){
  16. if(a[i]<a[j]){
  17. c[k]=a[i];
  18. k++;
  19. i++;
  20. }
  21.  
  22. else{
  23. c[k]=a[j];
  24. k++;
  25. j++;
  26. }
  27. }
  28.  
  29. while(i<=q){
  30. c[k]=a[i];
  31. k++;
  32. i++;
  33. }
  34.  
  35. while(j<=r){
  36. c[k]=a[j];
  37. k++;
  38. j++;
  39. }
  40.  
  41. for(i=p;i<k;i++){
  42. a[i]=c[i];
  43. }
  44. delete[] c;
  45. }
  46.  
  47.  
  48. int mergesort(int a[], int p, int r){
  49. int q;
  50. if(p<r){
  51. q=(p+r)/2;
  52. mergesort(a,p,q);
  53. mergesort(a,q+1,r);
  54. merge(a,p,r,q);
  55. }
  56. return(0);
  57. }
  58.  
  59.  
  60. int main() {
  61. int a[] = {3, 5, 2, 6, 8, 1, 99, 22};
  62. int p = 0, r = 0;
  63. while(a[++r] != '\0'); // arraygroesse berechnen
  64. r=r-3; // arraygroesse berechnen
  65. mergesort(a, p, r);
  66. return 0;
  67. }
Add Comment
Please, Sign In to add comment