Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- void mergeSort(int A[], int p, int r){
- if(p<r){
- int q = (p+r)/2;
- mergeSort(A, p, q);
- mergeSort(A, (q+1), r);
- merge(A, p, q, r);
- }
- }
- void merge(int A[], int p, int q, int r){
- int n1 = q - p + 1;
- int n2 = r - q;
- int L[n1+1], R[n2+1];
- int i;
- for(i=1; i<=n1; i++){
- L[i] = A[p+i-1];
- }
- int j;
- for(j=1; j<=n2; j++){
- R[j] = A[q+j];
- }
- L[n1+1] = 600;
- R[n2+1] = 600;
- i = 1;
- j = 1;
- int k;
- for(k=p; k<=r; k++){
- if(L[i] <= R[j]){
- A[k] = L[i];
- }
- else{
- A[k] = R[j];
- }
- }
- }
- int main(){
- int A[5] = {5,8,6,3,7};
- margeSort(A, 1, 5);
- int x = 0;
- for(x=0; x<=5; x++){
- printf(" %d ", A[x]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement