原文: 一步一步写算法(之合并排序) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 前面一篇博客提到的快速排序是排序算法中的一种经典算法。和快速排序一样,合并排序是另外一种经常使用的排序算法。那么合并排序算法有什么不同呢?关键之处就体现在这个...
分类:
编程语言 时间:
2014-12-11 10:01:58
阅读次数:
237
实现单链表排序 时间复杂度要求为 nlogn
由于是单链表,用快速排序无法往前面遍历(双向链表可以考虑),这里我们用到归并排序
代码如下:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(in...
分类:
其他好文 时间:
2014-12-10 22:52:35
阅读次数:
258
//指针在C语言算法中的应用
//首先说的是排序
//排序基本上分为5种
//插入排序, 选择排序, 交换排序, 归并排序, 分配排序
//先说7上8下的冒泡排序
#include
#include
using namespace std;
void BubbleSort(int *Array, int n)
{
int a;
for(int i = n; i > 0;...
分类:
其他好文 时间:
2014-12-10 16:20:49
阅读次数:
222
前段时间用归并排序写了这题,发现树状数组也能解这题,就去学习了一下
首先先来看一个序列 6 1 2 7 3 4 8 5,此序列的逆序数为5+3+1=9。冒泡法可以直接枚举出逆序数,但是时间复杂度太高O(n^2)。冒泡排序的原理是枚举每一个数组,然后找出这个数后面有多少个数是小于这个数的,小于它逆序数+1。仔细想一下,如果我们不用枚举这个数后面的所有数,而是直接得到小于这个数的个数,那么效率将...
分类:
编程语言 时间:
2014-12-09 23:08:39
阅读次数:
270
11.1 给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。编写一个方法,将B合并入A并排序。解法:已知数组A末端有足够的缓冲,不需要再分配额外空间。程序的处理逻辑很简单,就是逐一比较A和B中的元素,并顺序插入数组,直至耗尽A和B中的所有元素。这么做的唯一问题是,如果将元素插入数组A的...
分类:
编程语言 时间:
2014-12-09 13:50:28
阅读次数:
219
Minimum Inversion Number
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11840 Accepted Submission(s): 7258
Problem Description
...
分类:
其他好文 时间:
2014-12-09 12:17:27
阅读次数:
151
Frosh Week
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1919 Accepted Submission(s): 619
Problem Description
During Frosh Wee...
分类:
编程语言 时间:
2014-12-09 10:36:28
阅读次数:
259
Ultra-QuickSort
Time Limit: 7000MS
Memory Limit: 65536K
Total Submissions: 43446
Accepted: 15822
Description
In this problem, you have to analyze a particular sorting...
分类:
编程语言 时间:
2014-12-09 00:35:55
阅读次数:
218
归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。
算法描述
归并操作的过程如下:
申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列设定两个指针,最初位置分别为两个已经排序序列的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针到达序列尾将另...
分类:
编程语言 时间:
2014-12-08 23:04:54
阅读次数:
226
javabean必须实现WritableComparable接口,并实现该接口的序列化,反序列话和比较方法package com.my.hadoop.mapreduce.sort;import java.io.DataInput;import java.io.DataOutput;import ja...
分类:
编程语言 时间:
2014-12-08 19:18:16
阅读次数:
286