1. 分类2. 7种内排序算法的各种指标排序方法平均情况最好情况最坏情况辅助空间稳定性移动次数的平均情况移动次数的最好情况移动次数的最坏情况冒泡排序O(n2)O(n)O(n2)O(1)稳定O(n2)0O(n2)简单选择排序O(n2)O(n2)O(n2)O(1)稳定O(n)0O(n)直接插入排序O(n...
分类:
编程语言 时间:
2015-03-10 23:03:32
阅读次数:
353
一、基本概念 所谓排序,就是将原本无序的一个序列重新排列成为有序的序列。 所谓排序算法的稳定性,就是指待排序的序列中有两个或者两个以上的相同的项,在排序前和排序后的相对位置有没有发生变化。如果没有发生变化,那么就是稳定的,反之,则不稳定。
分类:
编程语言 时间:
2015-03-05 01:34:30
阅读次数:
146
主要是相邻2个记录的比较交换 1 package com.trfizeng.changesort; 2 3 /** 4 * @author trfizeng 内部排序 交换排序—冒泡排序(Bubble Sort) 5 */ 6 public class BubbleSort { 7 p...
分类:
编程语言 时间:
2015-03-01 23:38:35
阅读次数:
157
1 /** 2 * 3 */ 4 package com.trfizeng.changesort; 5 6 /** 7 * @author trfizeng 内部排序 交换排序—快速排序(Quick Sort) 8 */ 9 public class QuickSort {10 11 ...
分类:
编程语言 时间:
2015-03-01 23:38:14
阅读次数:
260
报表开发中,经常会碰到一些需要进行非常规统计的报表,固定分组、可重复分组、组内排序,还包括跨行组计算的报表,甚至有些报表本身无数据来源、以及需要对数据源再计算。这些报表本身具备一定的特殊性,使用常规方法往往难于实现。
对于按段分组报表,各段之间可以有重复,也就可能出现按段可重复的分组报表。集算报表在完成这类特殊统计报表时比较简单,这里通过一个实例说明实现过程。
报表说明
...
分类:
其他好文 时间:
2015-02-27 15:14:27
阅读次数:
162
选择排序的核心是:每趟选择最小的元素和首部交换。
时间复杂度:O(n^2)。
选择排序是一种不稳定的排序,为什么呢?因为不好处理相等两个数的前后位置,举个例子,序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。所以稳定排序是一定不会改变相等数之间之前位置关系的。
...
分类:
编程语言 时间:
2015-02-21 17:46:47
阅读次数:
167
从这一篇开始,计划复习一下数据结构的基本知识。一来是为了开年之后的找工作,二来是为了想提升自己的编程能力。由于这些数据结构知识点,之前都学习过,这里我们就提炼出每个知识点的核心,以及代码实现。
这篇先说排序算法中的插入排序。
插入排序是一种稳定排序算法,属于内排序、适合少量数据量的排序。
当输入数组已经排好序时,插入排序需要O(n),快排需要O(n^2)。
当输入数...
分类:
编程语言 时间:
2015-02-21 09:47:40
阅读次数:
205
从这一篇开始,我开始复习数据结构的知识点,博文主要偏重于每个知识点的核心思想,以及代码实现。这一篇先从排序算法中的插入排序开始。
稳定排序、内排序、适合少量数据量的排序。
当输入数组已经排好序时,插入排序需要O(n),快排需要O(n^2)。
当输入数组倒序排列时,插入排序时复为:O(n^2)。
平均时间复杂度:O(n^2)。
插入排序的基本做法是:将一个数插入到一个已...
分类:
编程语言 时间:
2015-02-21 09:44:32
阅读次数:
227
这篇复习冒泡排序。
冒泡排序也是一种稳定排序、内排序。
冒泡排序的基本思想:对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
插入排序比冒泡排序快!
上面说的是普通的冒泡排序算法,时间复杂度是O(n^2),这种方法只能一趟排序...
分类:
编程语言 时间:
2015-02-21 09:42:32
阅读次数:
186