/*题目内容:
使用合并排序算法,对输入的n个数据进行按升序排序。
输入描述
分两行,第一行是整数n,第二行是n个整数,每个整数之间用空格间隔。
输出描述
按升序排序的n个整数
输入样例
8
9 8 7 6 5 4 3 2
输出样例
2 3 4 5 6 7 8 9*/
/*分析:合并排序中用到了分治,其中比较关键的两个部分是1:合并分组排序的递归2:将排序后的小数组合...
分类:
编程语言 时间:
2014-11-07 20:54:55
阅读次数:
285
1. 介绍 排序算法是将一串数据按照某种特定排序方式(规则)进行排序的算法。分为内部排序和外部排序。 内部排序:指排序数据存储在内存中,依照依照某种排序方式(规则)进行排序。内部排序不适合太大的数据。内部排序的八中排序算法:冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序、快速排序、基数.....
分类:
编程语言 时间:
2014-11-07 16:46:05
阅读次数:
233
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内...
分类:
编程语言 时间:
2014-11-07 16:41:08
阅读次数:
204
最近看到一种快捷菜单按钮,是按一个钮,在其周围弹出若干个钮,并排在圆周上。再按圆心处按钮则收回弹出的按钮。
我认为这里值得改进的地方有:
1、最初得有一个按钮浮现,这个按钮有点占地方。
2、当用户放弃操作时,用户需要再按一下按钮来收回弹出的按钮。这个动作有点多余。
我认为精简一个动作和少占一个地方都有极大的价值,所以我设计的快捷按钮是:
1、平时不占任何空间,通过手势唤出...
分类:
其他好文 时间:
2014-11-07 01:05:35
阅读次数:
227
还有好多其他排序而且每种排序都有优化,之后会不断添加.
/**
* 文件名:SortTest.java
* 时间:2014年11月5日下午6:05:13
* 作者:修维康
*/
package chapter7;
import java.util.Arrays;
/**
* 类名:SortTest 说明:各类排序分析详解
*/
public class SortTest {
...
分类:
编程语言 时间:
2014-11-06 23:40:39
阅读次数:
500
归并算法是将两个或两个以上的有序表组合成一个新的有序表,它的原理是:假设初始序列含有n个记录,则可以看成是n个有序子序列,两两归并,得到[n/2]个有序子序列,再次归并……不断重复直至归并到长度为n的有序序列,这样的排序方法称为2路归并排序。
实例一:递归形式的2路归并算法
#define MAXSIZE 4
int data[MAXSIZE] = {2,1,0,3};
/*...
分类:
编程语言 时间:
2014-11-06 22:05:09
阅读次数:
280
归并排序重点在治,即合并两个有序数组: 1 void merge(int A[], int p, int q, int r) 2 { 3 int i = 0, j = 0, k = p; 4 int m = q - p + 1; 5 int n = r - q; 6 ...
分类:
编程语言 时间:
2014-11-06 19:38:23
阅读次数:
198
快速排序和归并排序都是分治法的典型应用,主要区别在于,快速排序重在分,而归并排序重在治。 快速排序基于以下假设:已知x,序列中一半的数据大于x,另一半小于等于x,且小于等于x的数据在数组前一半,大于x的在后一半。这种分割不需要额外的存储空间,对两侧数据分别递归进行,最终数组排序即可完成。 实...
分类:
编程语言 时间:
2014-11-06 12:17:59
阅读次数:
181
前言:动态规划的概念 动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。分治算法是指将问题划分为一些独立的子问题,递归的求解各个问题,然后合并子问题的解而得到原问题的解。例如归并排序,快速排序都是采用分治算法思想。本书在第二章介绍归并排序时,详细介绍了分治算法....
分类:
其他好文 时间:
2014-11-06 10:48:17
阅读次数:
204
总结5种比较高效常用的排序算法,包括选择排序、插入排序、归并排序、希尔排序、快速排序等。
分类:
编程语言 时间:
2014-11-06 10:29:27
阅读次数:
279