1.冒泡排序:
思路:将相邻的逆序元素交换为顺序排列,直到整个序列有序,算法如下:
/**
* 冒泡排序-最初实现,时间复杂度O(n^2)
* @param arr 待排序的数组
* @param lo 待排序区间的起始位置
* @param hi 待排序区间的结束位置
*/
public static void bubbleSort(int[] arr, int lo, int ...
分类:
编程语言 时间:
2015-01-03 17:22:28
阅读次数:
242
上机代码:
#include
#include
#include
using namespace std;
#define parent(i) (i)/2
#define left(i) 2*(i)
#define right(i) 2*(i)+1
int size;
void heapify(int a[], int i)
{
int l = left(i), r = right...
分类:
编程语言 时间:
2015-01-01 01:33:37
阅读次数:
174
http://blog.csdn.net/mishifangxiangdefeng/article/details/7662515http://www.cnblogs.com/Jiajun/archive/2013/05/31/3110256.html这里练习6.3-3看http://blog.cs...
分类:
编程语言 时间:
2014-12-30 16:47:27
阅读次数:
169
1. 堆 二叉堆是一个数组,它可以被看成一个近似的完全二叉树。 二叉堆有两种形式:最大堆和最小堆。在最大堆中,父节点的值总是大于等于任何一个子节点的值。因此,堆中的最大元素放在根节点中,并且在任一子树中,该字数包含的所有节点的值都不大于该子树根节点的值。最小堆是指父节点的值总是小于或等于任一子节.....
分类:
编程语言 时间:
2014-12-30 14:56:14
阅读次数:
209
Counter类:计数器IntPk中包含主键publicclassCounterextendsIntPK{
privateintcount;
publicintgetCount(){
returncount;
}
publicvoidsetCount(intcount){
this.count=count;
}
}MinHeap类:最小堆排序类packagecom.ryx.incantation.model;
importcom.ryx.incantation.en..
分类:
编程语言 时间:
2014-12-28 02:01:43
阅读次数:
232
以下为代码实现function heapsort( array ){ bulidHeap( array ); for( var i = array.length-1; i >= 0; --i ){ swap( array, 0, i ); adjust( ar...
分类:
编程语言 时间:
2014-12-27 21:41:55
阅读次数:
230
选择排序的基本思想是:每一趟从n-i+1 (i=1,2,…,n)个元素中选取一个关键字最小的元素作为有序序列中第i个元素。本节在介绍简单选择排序的基础上,给出了对其进行改进的算法堆排序。1.简单选择排序 a:算法描述 简单选择排序的基本思想非常简单,即:第一趟,从n个元素中找出关键字最小...
分类:
编程语言 时间:
2014-12-23 21:04:58
阅读次数:
205
堆排序是对简单选择排序算法的一种改进,在每次选择最小记录的同时,根据比较结果对其他记录做出相应的调整。堆是具有下列性质的完全二叉树:每个节点的值都大于(小于)或者等于其左右孩子节点的值,为大顶堆(小于)。堆排序的基本思想是:从最后一个含有叶子节点的节点开始将待排序列构造成一个堆,然后将堆顶元素与末尾...
分类:
编程语言 时间:
2014-12-23 10:10:55
阅读次数:
182