1.冒泡排序//基本算法for(i=1;i1){ mergeSort(list[0~list.length/2]); mergeSort(list[list.length/2+1~list.length-1]); merge list...
分类:
其他好文 时间:
2014-09-24 16:49:07
阅读次数:
175
1:合并排序 合并排序算法使用分治策略实现对n个元素进行排序的算法。其基本思想是:将待排序元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最后总将排好序的子集合合并成所要求的排好序的集合。算法描述如下:void MergeSort(Typr a[],int left,int right....
分类:
其他好文 时间:
2014-09-16 12:15:50
阅读次数:
163
给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。解题思路:一看就是冒泡,交换一次记录一次就可以了但是n的范围达到50W,冒泡O(n^2)的复杂度铁定超时(即使有7000ms,其实这是一个陷阱)直接用快排又不符合题目的要求(相邻元素交换),快排是建立在二分的基础...
分类:
其他好文 时间:
2014-09-09 11:58:58
阅读次数:
201
import java.util.Scanner;public class Main { private static int count=0; public static void mergesort(int a[],int low,int high) { if(l...
分类:
编程语言 时间:
2014-09-09 10:39:58
阅读次数:
241
归并排序 归并排序(MergeSort)的基本思想是:将待排序文件看成为n个长度为1的有序子文件,把这些子文件两两归并,使得到「n/2」个长度为2的有序子文件;然后再把这「n/2」个有序文件的子文件两两归并,如此反复,直到最后得到一个长度为n的有序文件为止,这种排序方法成为二路归并排序。例如,...
分类:
其他好文 时间:
2014-08-19 16:01:04
阅读次数:
191
分而治之,归并排序
算法简单易懂,第一次编写错误,误把原数组下表当做临时数组考虑,结果可想而知,访问越界
下面是正确代码
import java.util.Scanner;
public class MergeSort {
/**
* @param args
*/
public static void main(String[] args)
{
// TO...
分类:
编程语言 时间:
2014-08-18 18:37:12
阅读次数:
254
import sysclass mergesort(): def merge_sort(self, A, p, r): if p < r: q = (p + r) / 2 self.merge_sort(A, p, q) ...
分类:
编程语言 时间:
2014-08-17 15:30:52
阅读次数:
166
1 package POJ; 2 3 public class Main { 4 5 /** 6 * 7 * MergeSort 8 * 9 */10 public static void main(String[] args) {1...
分类:
其他好文 时间:
2014-08-15 21:07:29
阅读次数:
162
0 1 2 3 4 5 6 7 8 //下标
{ 9 , 4 , 3 , 7 , 3 , 8 , 2 , 4 , 8 }//通过mergesort函数递归 来切 开始的时候fir=0, las=8, mid=4 所以下标0-4,分为前组 5-8分为后组
{ 9 , 4 , 3 , 7 , 3 }{ 8 , 2 , 4 , 8 }
{ 9 , 4 , 3 }{...
分类:
其他好文 时间:
2014-08-13 19:00:47
阅读次数:
160