//插入排序//C++#includeusingnamespacestd;voidmain(){inta[6]={5,2,4,6,1,3};//定义一个未排好序的数组inti,j,key;for(i=0;i=0&&a[i]>key){a[i+1]=a[i];i=i-1;}a[i+1]=key;} c...
分类:
编程语言 时间:
2014-12-03 22:50:23
阅读次数:
134
题目
Sort a linked list in O(n log n)
time using constant space complexity.
解答
O(nlogn)时间复杂度的排序有快排、堆排、归并,一般双向链表用快排、单向链表用归并,堆排两种都可以,以下使用归并排序:
/**
* Definition for singly-linked list.
* class Li...
分类:
其他好文 时间:
2014-12-03 21:32:25
阅读次数:
138
一、原题
Sort List
Sort a linked list in O(n log n)
time using constant space complexity.
二、分析
快速排序和归并排序的时间复杂度是O(nlogn)。如果使用归并排序,在使用链表的情况下,不需要重新申请空间存放排序后的数组,可以做到空间复杂度数O(1)。我在这里使用归并排序来排序链表...
分类:
其他好文 时间:
2014-12-03 21:28:07
阅读次数:
112
/*
* MergeSorter.cs - by Chimomo
*
* 归并排序是建立在归并操作上的排序算法,该算法是分而治之策略(Divide and Conquer)的一个非常典型的应用。
*
* 归并操作的基本原理:
* 1、申请空间,使其大小为两个已经排序序列之和,该空间用来存放归并后的序列。
* 2、设置两个指针,最初位置分别为两个已经排序序列的起始位置。
* 3、...
分类:
编程语言 时间:
2014-12-03 19:21:53
阅读次数:
153
1、修改list中的活动状态 for(Iterator<Activity>?it?=?activityList.iterator();it.hasNext();){
????Activity?activity?=?it.next();
????int?actStatus?=?activity.getActStatus();
????...
分类:
编程语言 时间:
2014-12-03 17:19:15
阅读次数:
215
#include
#include
#include
int a[]={223, 34, 23, 2, 21, 55, 87, 533 , 213, 111};
//int a[]={2, 21, 23, 34, 55, 87, 111, 213, 223, 533};
//int a[]={533, 223, 213, 111, 87, 55, 23, 34 , 2...
分类:
编程语言 时间:
2014-12-03 15:48:07
阅读次数:
145
堆排序堆排序_百度百科堆排序_维基百科堆_百度百科堆 (数据结构)_维基百科堆排序是和快排、归并排序一样常见的复杂度为o(nlogn)的算法,速度比较快。那么,要进行堆排序,首先要把n个数据进行最大堆化(也就是把整个数据整理成一个最大堆)这样子首元素就是数组最大的元素了。把它和最后的元素进行交换,那...
分类:
编程语言 时间:
2014-12-01 00:32:19
阅读次数:
287
上一篇讨论了链表的反转问题,这一篇讨论链表排序的问题1. 排序两个有序链表比较简单,属于归并排序,不再赘述时间复杂度O(n), 空间复杂度O(1) 1 ListNode *mergeList( ListNode *list1, ListNode *list2 ) { 2 if(!list1 ...
分类:
其他好文 时间:
2014-11-30 14:00:59
阅读次数:
132