---恢复内容开始---从开始准备学编程就一直听算法算法。算法个毛东西?今天开始我就开始准备接触算法算法那么首先就是排序:排序大概份四种排序: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选择排序,堆排序。 插入排序: 包括直接插入排序,希尔排序。 合并排序: 合并排序。...
分类:
编程语言 时间:
2015-06-16 22:44:14
阅读次数:
163
分而治之实验目的:理解分治法的算法思想,阅读实现书上已有的部分程序代码并完好程序,加深对分治法的算法原理及实现过程的理解。实验内容:用分治法实现一组无序序列的两路合并排序和高速排序。要求清楚合并排序及高速排序的基本原理,编程实现分别用这两种方法将输入的一组无序序列排序为有序序列后输出。代码:#inc...
分类:
编程语言 时间:
2015-06-11 10:43:27
阅读次数:
127
算法:定义良好的计算过程,取一个或一组值作为输入,并产生出一个或一组值作为输出。即算法就是一系列的计算步骤,用来将输入数据转换成输出结果。 插入排序算法:对n个数据项进行排序的时间大约等于c1n^2,其中c1是一个不依赖于n的常量。即该算法所需的时间大致正比于n^2。 合并排序算法:排序n个...
分类:
其他好文 时间:
2015-06-10 11:57:53
阅读次数:
102
两个有序单链表的合并:其实本程序可以实现任意两个单链表的合并排序,思想就是 *1.建两个链表2.合并两个链表3.对合并后的链表排序4.打印 *关键函数:linkDList 直接连接两个链表;selectsort 单链表的选择排序*/
分类:
编程语言 时间:
2015-05-27 09:51:52
阅读次数:
151
1、合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素;
合并排序一般的思路都是创建一个更大数组C,刚好容纳两个数组的元素,先是一个while循环比较,将其中一个数组A比较完成,将另一个数组B中所有的小于前一个数组A的数及A中所有的数按顺序存入C中,再将A中剩下的数存入C中,但这里是已经有一个数组能存下两个数组的全部元素,就不用在创建数组了,但只能从后往前面存,从...
分类:
编程语言 时间:
2015-05-26 21:30:46
阅读次数:
170
(算法老师布置这道题好长时间了,可是一直没有思路,真的是憋出来的代码啊) 真正意义上的合并排序是按照给的数组来判断的,它分的不是两两一组,在四四一组排序,直到完全排完序,真正意义上的合并排序是指 先在数组上找到已有序的数组,分成几块,在进行合并。 代码如下:#i...
分类:
编程语言 时间:
2015-05-15 01:08:08
阅读次数:
219
算法导论第二章 练习题,使用合并排序算法寻找逆序对 基本思想:在merge过程中,交换位置与一组逆序对是一一对应的。 在左右两个子数组内部是排好序的,所以逆序对的出现仅仅存在于“左数组中的数组大有右数组中的数字”的情况。 所以在每次的merge过程中就可以进行逆序对的计数。java代码实现: 1.....
分类:
其他好文 时间:
2015-05-13 12:00:02
阅读次数:
127
题目:设子数组a[0:k]和a[k+1:n-1]已排好序(0<=k<=n-2)。试设计一个合并这两个子数组为排好序的数组a[0:n-1]的算法。要求算法的在最坏情况下所用的计算时间为O(n),且只用到O(1)的辅助空间。...
分类:
编程语言 时间:
2015-05-08 16:37:20
阅读次数:
143
public class Merge{ //递归分成小部分 public void merge_sort(int[] arrays,int start,int end){ if(start<end){ int m=(start+end)/2; ...
分类:
编程语言 时间:
2015-05-07 23:47:20
阅读次数:
582