一步一步写算法(之合并排序)(二)

2014-11-23 23:30:09 · 作者: · 浏览: 14
他形式的数据类型代替。

d)编写测试用例

static void test1()

{

int array[] = {1};

merge_sort(array, sizeof(array)/sizeof(int));

}

static void test2()

{

int array[] = {2, 1};

merge_sort(array, sizeof(array)/sizeof(int));

assert(1 == array[0]);

assert(2 == array[1]);

}

static void test3()

{

int array[] = {3, 2, 1};

merge_sort(array, sizeof(array)/sizeof(int));

assert(1 == array[0]);

assert(2 == array[1]);

assert(3 == array[2]);

}

static void test4()

{

int array[] = {4, 3, 5, 1};

merge_sort(array, sizeof(array)/sizeof(int));

assert(1 == array[0]);

assert(3 == array[1]);

assert(4 == array[2]);

assert(5 == array[3]);

}

static void test1()

{

int array[] = {1};

merge_sort(array, sizeof(array)/sizeof(int));

}

static void test2()

{

int array[] = {2, 1};

merge_sort(array, sizeof(array)/sizeof(int));

assert(1 == array[0]);

assert(2 == array[1]);

}

static void test3()

{

int array[] = {3, 2, 1};

merge_sort(array, sizeof(array)/sizeof(int));

assert(1 == array[0]);

assert(2 == array[1]);

assert(3 == array[2]);

}

static void test4()

{

int array[] = {4, 3, 5, 1};

merge_sort(array, sizeof(array)/sizeof(int));

assert(1 == array[0]);

assert(3 == array[1]);

assert(4 == array[2]);

assert(5 == array[3]);

}

分析快速排序和合并排序的相同点和不同点:

相同点: 都是迭代操作

不同点: 快速排序,先分类再迭代;合并排序,先迭代再合并