Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void merge();
- int mergesort();
- void merge(int a[], int p, int r, int q){
- int i, j, k, Asize=0;
- int *c;
- while(a[Asize++] != '\0');
- c = new int [Asize-1];
- i=p;
- j=q+1;
- k=p;
- while((i<=q)&&(j<=r)){
- if(a[i]<a[j]){
- c[k]=a[i];
- k++;
- i++;
- }
- else{
- c[k]=a[j];
- k++;
- j++;
- }
- }
- while(i<=q){
- c[k]=a[i];
- k++;
- i++;
- }
- while(j<=r){
- c[k]=a[j];
- k++;
- j++;
- }
- for(i=p;i<k;i++){
- a[i]=c[i];
- }
- delete[] c;
- }
- int mergesort(int a[], int p, int r){
- int q;
- if(p<r){
- q=(p+r)/2;
- mergesort(a,p,q);
- mergesort(a,q+1,r);
- merge(a,p,r,q);
- }
- return(0);
- }
- int main() {
- int a[] = {3, 5, 2, 6, 8, 1, 99, 22};
- int p = 0, r = 0;
- while(a[++r] != '\0'); // arraygroesse berechnen
- r=r-3; // arraygroesse berechnen
- mergesort(a, p, r);
- return 0;
- }
Add Comment
Please, Sign In to add comment