一、冒泡排序冒泡排序算是最基础的一种算法了,复杂度为O(N^2),其基本思想是:从最低端数据开始,两两相邻比较,如果反序则交换。代码如下:/*最基本的冒泡排序*/void
BubbleSort1 (int n, int *array) /*little > big*/{ int i, j...
分类:
其他好文 时间:
2014-05-09 13:02:57
阅读次数:
319
直接插入排序对待排数量较少且基本有序的序列,其执行效率是非常高的,希尔排序正是利用了这点,将一个无序的序列拆分成几个子组,然后对几个子组分别进行插入排序。注意,这儿的分组并不是简单的{a1,a2,a3,b1,b2,b3,c1,c2,c3}(相同字母为一组),而是进行{a1,b1,c1,a2,b2.....
分类:
其他好文 时间:
2014-05-09 12:59:34
阅读次数:
280
Sort a linked list using insertion sort.
链表的插入排序,其实有2种特殊情况: 1、插入的值插入到已排序的末尾。 2、插入的值插入到已排序的最前端。 主要设置了3个指针。
1、pStart是已排序链表的开始位置。 2、pInsert是待插入的位置。 3、pEn...
分类:
其他好文 时间:
2014-05-09 05:16:22
阅读次数:
327
堆的删除
按定义,堆中每次都只能删除第0个数据。为了便于重建堆,实际的操作是将最后一个数据的值赋给根结点,然后再从根结点开始进行一次从上向下的调整。调整时先在左右儿子结点中找最小的,如果父结点比这个最小的子结点还小说明不需要调整了,反之将父结点和它交换后再考虑后面的结点。相当于从根结点将一个数据的“下沉”过程。
堆的插入
每次插入都是将新数据放在数组最后。可以发现从这个新...
分类:
其他好文 时间:
2014-05-09 02:16:57
阅读次数:
255
本次介绍排序算法中的插入排序。 1.直接插入排序: 基本思想:
直接插入排序也需要对待排序的序列在外层进行n-1次遍历,每次遍历时只把本次遍历次数处的元素和该元素之前的元素进行比较,来决定插入位置,并把从插入位置开始到该元素之前的所有元素后移,使从序列开始到该元素为止序列中的元素有序,直至遍历完成序...
分类:
其他好文 时间:
2014-05-08 22:33:17
阅读次数:
377
public class Sort {
static void insertSort(int a[], int n) {
for (int i = 1; i < n; i++) {
if (a[i] = 0 && a[k] > temp) {
...
分类:
其他好文 时间:
2014-05-07 16:15:39
阅读次数:
225
归并排序
归并排序 (merge sort) 是一类与插入排序、交换排序、选择排序不同的另一种排序方法。归并的含义是将两个或两个以上的有序表合并成一个新的有序表。归并排序有多路归并排序、两路归并排序 , 可用于内排序,也可以用于外排序。这里仅对内排序的两路归并方法进行讨论。
1.两路归并排序算法思路
①把 n 个记录看成 n 个长度为1的有序子表;
②进行两两归并使记录关键字有序,...
分类:
编程语言 时间:
2014-05-07 11:47:08
阅读次数:
347
Golang开发环境搭建 Notepad++、LiteIDE两种方式
martini框架的使用...
分类:
其他好文 时间:
2014-05-07 03:02:54
阅读次数:
289
前一篇文章我们看到了Golang标准库中log模块的使用,那么它是如何实现的呢?下面我从log.Logger开始逐步分析其实现。其源码可以参考官方地址1.Logger结构首先来看下类型Logger的定义:typeLoggerstruct{
musync.Mutex//ensuresatomicwrites;protectsthefollowingfields
prefixs..
分类:
其他好文 时间:
2014-05-06 17:10:28
阅读次数:
1024
Golang的标准库提供了log的机制,但是该模块的功能较为简单(看似简单,其实他有他的设计思路)。不过比手写fmt.Printxxx还是强很多的。至少在输出的位置做了线程安全的保护。其官方手册见Golanglog(天朝的墙大家懂的)。这里给出一个简单使用的例子:packagemain
import(
"log"..
分类:
其他好文 时间:
2014-05-05 12:22:27
阅读次数:
20583