摘要:
归并算法描述申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列设定两个指针,最初位置分别为两个已经排序序列的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针达到序列尾将另一序列剩下的所有元素直接复制到合并序列尾示例代码以下示例代码实现了归并操作。arr是元素序列,其中从索引p开始到q位置,按照升序排列,同时,从(q+1)到r也已经按照升序排列,merge()函数将把这两个已经排序好的子序列合并成一个排序序列。结果放到arr中。 1 #include <stdio.h> 2 #include <std 阅读全文
摘要:
插入算法描述从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置中重复步骤2示例代码示例代码为C语言,输入参数中,需要排序的数组为arr[],排序长度为length。示例代码的函数采用in-place排序,调用完成后,arr[]中从0到length处于升序排列。 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 char *insertion_sort_char 阅读全文