重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
L1[n1+1] = MAX_INTEGER;L2[n2+1] = MAX_INTEGER;数组访问出界了。改为 L1[n1] = MAX_INTEGER;L2[n2] = MAX_INTEGER;就可以了。原因应该不用我多说了。
成都创新互联公司主营华容网站建设的网络公司,主营网站建设方案,成都APP应用开发,华容h5成都微信小程序搭建,华容网站营销推广欢迎华容等地区企业咨询
low,mid,high),也就是Merge(1,4,8)。至于Merge_SortDC(1,4); 与Merge_SortDC(4+1,8)各自的执行顺序,也跟Merge_SortDC(1,8);是类似的,可以类推。递归就是先递推调用到最后,然后再一层层返回来。
程序代码都是顺序执行的,当然是把一路调用完再做第二路调用,最后把排好序的2路进行合并;在排序每一路的时候也是使用归并的方式,把一路分成2路,层层深入。
你的变量定义和使用不符合C语言规范:所有变量必须先定义后使用。
单词的存储索引--单词权值 逐个对应,每个单词 对应一个权值,每个字母对应 0~25, 单词的最后字母对应0,向前依次对应 26, 26*26, 26*26*26。。
两边的数组都是有序的了,这时候,执行Merge(low,mid,high),也就是Merge(1,4,8)。至于Merge_SortDC(1,4); 与Merge_SortDC(4+1,8)各自的执行顺序,也跟Merge_SortDC(1,8);是类似的,可以类推。
你那两行 L1[n1+1] = MAX_INTEGER;L2[n2+1] = MAX_INTEGER;数组访问出界了。改为 L1[n1] = MAX_INTEGER;L2[n2] = MAX_INTEGER;就可以了。原因应该不用我多说了。
你的变量定义和使用不符合C语言规范:所有变量必须先定义后使用。
L1[n1+1] = MAX_INTEGER;L2[n2+1] = MAX_INTEGER;数组访问出界了。改为 L1[n1] = MAX_INTEGER;L2[n2] = MAX_INTEGER;就可以了。原因应该不用我多说了。
当调用Merge_SortDC(1,8);时,Merge_SortDC(1,4); 与Merge_SortDC(4+1,8); 都执行成功返回以后 两边的数组都是有序的了,这时候,执行Merge(low,mid,high),也就是Merge(1,4,8)。
按照你这种方法改下去,但是把排序的方法改为冒泡法。
语法方面主要是引用数组的格式不对,还有下标有粗心的地方。算法方面 函数mindex的问题比较大。我把你的程序修正过了。在vc6下调试ok。现在贴给你。