排序算法有很多种,这里在复习和分析的基础上,做一个自己的总结;首先要知道有哪些排序算法,google一下,有云C语言7大经典排序算法(也有8大)。主要包括冒泡排序,快速排序,选择排序,插入排序,希尔排序,归并排序,堆排序,8大的还有基数排序。各有各的版本,代码写法也各不相同。所以这里以整理思路为先,...
分类:
编程语言 时间:
2014-07-06 23:13:49
阅读次数:
301
它的思想是将一个无序的数组先用递归进行二分,当分解为无限小时,即为单个整数时,再对其进行排列。得出有序的数组 代码如下: package com.jll.sort; public class MergeSort { public MergeSort() { } public void merge(i...
分类:
其他好文 时间:
2014-07-06 21:01:33
阅读次数:
161
Python内置函数之filter map reduce2013-06-04Posted byyehoPython内置了一些非常有趣、有用的函数,如:filter、map、reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表...
分类:
编程语言 时间:
2014-07-06 16:26:10
阅读次数:
222
链表的归并排序
超时的代码
class Solution:
def merge(self, head1, head2):
if head1 == None:
return head2
if head2 == None:
return head1
# head1 and head2 point to the same link list
if head1 == he...
分类:
编程语言 时间:
2014-07-06 09:09:51
阅读次数:
275
记录学习点滴,菜鸟成长记归并排序的英文叫做Merge-Sort,要想明白归并排序算法,还要从“递归”的概念谈起。1.递归一般来讲,人在做决策行事的时候是往往是从已知出发,比如,我又要举个不恰当的例子了→_→:看到漂亮姑娘→喜欢人家→追→女朋友→老婆但是人家施瓦辛格不是这么想的,人家从小就立志当总统:...
分类:
其他好文 时间:
2014-07-05 21:32:47
阅读次数:
220
一,归并排序 归并排序是建立在归并操作上的一种排序算法,它采用了分治法的思想,是一种稳定的排序算法,而且归并排序的速度仅次于快速排序。时间复杂度:O(n*logn),最坏的情况:O(n*logn),空间复杂度:O(n)。从数据就可以看出:归并排序比快速排序快很多,同样为稳定排序。 ...
分类:
其他好文 时间:
2014-07-05 11:16:20
阅读次数:
208
上一篇讲到的直接插入排序,时间复杂度O(n^2). 请在脑海里想一下它的过程。如果一个序列本来就是有序的,对它排序的时间复杂度是O(n)。所以当序列基本有序时,插入排序排序的效率大提高,因为减少了移动的动作。
另外,接插入排序还有一个特点,当n比较小时,它的效率比较高。...
分类:
其他好文 时间:
2014-07-04 08:54:11
阅读次数:
302
数组中的逆序对 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 在数组中的两个数字如果前面一个数字大于后面的数字, 则这两个数字组成一个逆序对.输入一个数组, 求出这个数组中的逆序对的总数.使用归并排序的方法, 辅助空间一个排序的数组, 依次比较前面较大的数字, 算出整体的逆序对数, 不用逐个比较.时间复杂度: O(nlogn)代码:/*
* ...
分类:
其他好文 时间:
2014-07-04 00:27:34
阅读次数:
329
【题目】
Sort a linked list in O(n log n) time using constant space complexity.
【题意】
排序一个链表,要求时间复杂度O(nlogn),使用常量空间
【思路】
nlogn的复杂度,用归并排序求解...
分类:
其他好文 时间:
2014-07-02 09:25:40
阅读次数:
252
void merge_array(int list1,int list1_size,int list2,int list2_size)
{
int i,j,k;
i=j=k=0;
//声明临时数组用暂存归并结果
int list[list1_size + list2_size];
while(i < list1_size && j < l...
分类:
其他好文 时间:
2014-07-02 09:13:46
阅读次数:
213