machinehead
New member
מימוש מיון מיזוג (MERGE SORT) ע"י חלוקה ל3
שלום, אני צריך לממש קטע קוד במיון מיזוג ע"י חלוקת המערך ל 3 במקום ל2, לקחתי קטע קוד מוכן והתחלתי לשנות אותו את החלק של ה MERGE SORT אני חושב שביצעתי נכון, את החלק השני, שהוא הפונקציה MERGE, נתקעתי, אנא כוונו אותי תודה מראש
שלום, אני צריך לממש קטע קוד במיון מיזוג ע"י חלוקת המערך ל 3 במקום ל2, לקחתי קטע קוד מוכן והתחלתי לשנות אותו את החלק של ה MERGE SORT אני חושב שביצעתי נכון, את החלק השני, שהוא הפונקציה MERGE, נתקעתי, אנא כוונו אותי תודה מראש
#include <stdio.h> void merge(int a[], int low, int high, int mid); int mergesort(int a[], int low, int high); void main() { } int mergesort(int a[], int low, int high) { int mid1,mid2; if(low<high) { mid1=(low+high)/3; mid2(mid1+high)/3; mergesort(a,low,mid1); mergesort(a,mid1,mid2); mergesort(a,mid2,high); //mergesort(a,mid+1,high); merge(a,low,high,mid); } return(0); } void merge(int a[], int low, int high, int mid) { int i, j, k, c[50]; i=low; j=mid+1; k=low; while((i<=mid)&&(j<=high)) { if(a<a[j]) { c[k]=a; k++; i++; } else { c[k]=a[j]; k++; j++; } } while(i<=mid) { c[k]=a; k++; i++; } while(j<=high) { c[k]=a[j]; k++; j++; } for(i=low;i<k;i++) { a=c; } }