Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void merge(int first, int mid, int kon)
- {
- int i,j,q;
- for (i=first; i<=kon; i++) arrayBis[i]=array[i]; // Skopiowanie danych do tablicy pomocniczej
- i=first; j=mid+1; q=first; // Ustawienie wskaźników tablic
- while (i<=mid && j<=kon) { // Przenoszenie danych z sortowaniem ze zbiorów pomocniczych do tablicy głównej
- if (arrayBis[i]<arrayBis[j])
- tab[q++]=t[i++];
- else
- tab[q++]=t[j++];
- }
- while (i<=mid) tab[q++]=t[i++]; // Przeniesienie nie skopiowanych danych ze zbioru pierwszego w przypadku, gdy drugi zbiór się skończył
- }
- /* Procedura sortowania tab[first...kon] */
- void mergesort(int first, int kon)
- {
- int mid;
- if (first<kon) {
- mid=(first+kon)/2;
- mergesort(first, mid); // Dzielenie lewej części
- mergesort(mid+1, kon); // Dzielenie prawej części
- merge(first, mid, kon); // Łączenie części lewej i prawej
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement