데이터 구조와 알고리즘 - 10대 고전 알고리즘 - 통합 정렬

1456 단어
////sort_.cpp//Sort////Created by ljpc on 2018/4/20.//Copyright © 2018년 ljpc.All rights reserved.//
#include “sort_.h”
void print_array(int*arr, intn)//인쇄 배열 {if(n==0){printf("ERROR: Array length is ZERO");return;}printf("%d", arr[0]); for (int i=1; i printf("%d", arr[i]); } printf(""); }
int* merge_array(int arr1, int n1, int arr2, int n2)///프로그래밍은 두 개의 질서수 그룹arr1과arr2의 합병//함수 매개 변수를 실현한다. 질서수 그룹arr1의 길이와 질서수 그룹arr2의 길이//함수 반환값: 작은 정렬에서 큰 정렬까지의 합병 그룹 {///코드를 보충하여 이 관문 작업을 완료하십시오/****** Begin****/
int i,j,k, m;
int temp[n1+n2];

i = j = k = 0;

while(i < n1 && j < n2)
{
    if(arr1[i] < arr2[j])
    {
        temp[k] = arr1[i];
        k++;
        i++;
    }
    else
    {
        temp[k++] = arr2[j++];
    }
}

while(i < n1)
{
    temp[k++] = arr1[i++];
}

while(j < n2)
{
    temp[k++] = arr2[j++];
}

for(m = 0;m < (n1 + n2);m++)
{
    arr1[m] = temp[m];
}

return arr1;/********** End/} int merge_sort(int arr, int n)//merge_ 기반array 함수 프로그래밍 병합 정렬 실현: 위에서 아래로 돌아가는 방법//함수 매개 변수: 질서수 그룹arr수 그룹arr 길이//함수 반환 값: 작은 그룹에서 큰 그룹으로 되돌아온 그룹 {//여기에 코드를 보충하여 본 작업 완료/Begin *****/
if(n > 1) { int *arr1 = arr; int n1 = n/2; int *arr2 = arr + n1; int n2 = n - n1;
    merge_sort(arr1, n1);
    merge_sort(arr2, n2);

    //  
    merge_array(arr1, n1, arr2, n2);
	return arr1;
}






/********** End **********/

}

좋은 웹페이지 즐겨찾기