Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void Merge(Dane[] D, int begin, int q, int end, Dane[] temp)
- {
- int copied= 0;
- int copied1= begin;
- int copied2= q;
- while((copied1<=q)&&(copied2<=end))
- if((D[copied1].value)<=(D[copied2].value))
- {
- D[1].countOfSimilise++;
- D[(copied1)].countOfExchange++;
- temp[copied].value= D[(copied1)].value;
- temp[copied].beginPosition= D[(copied1)].beginPosition;
- temp[copied].countOfExchange= D[(copied1)].countOfExchange;
- copied++;
- copied1++;
- }
- else
- {
- D[1].countOfSimilise++;
- D[(copied2)].countOfExchange++;
- temp[copied].value= D[(copied2)].value;
- temp[copied].beginPosition= D[(copied2)].beginPosition;
- temp[copied].countOfExchange= D[(copied2)].countOfExchange;
- copied++;
- copied2++;
- }
- while (copied1<=q)
- {
- temp[copied].value= D[(copied1)].value;
- temp[copied].beginPosition= D[(copied1)].beginPosition;
- temp[copied].countOfExchange= D[(copied1)].countOfExchange;
- if (copied!=copied1)
- temp[copied].countOfExchange++;
- copied++;
- copied1++;
- }
- while (copied2<=end)
- {
- temp[copied].value= D[(copied2)].value;
- temp[copied].beginPosition= D[(copied2)].beginPosition;
- temp[copied].countOfExchange= D[(copied2)].countOfExchange;
- if (copied!=copied2)
- temp[copied].countOfExchange++;
- copied++;
- copied2++;
- }
- int f;
- for (int i=0; i<end-begin+1; i++)
- {
- f=begin+i;
- D[f].value= temp[i].value;
- D[f].beginPosition= temp[i].beginPosition;
- D[f].countOfExchange= temp[i].countOfExchange;
- }
- }
- public static void MergeSort(Dane[] D, int begin, int end, Dane[] temp) //begin= zerowy element +1
- {
- int q;
- q=(begin+end)/2;
- if (begin<end)
- {
- MergeSort(D, begin, q, temp);
- MergeSort(D, q+1, end, temp);
- Merge(D, begin, q, end, temp);
- }
- Merge(D, begin, q, end, temp);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement