之前学习过内部排序的八大算法,也一一写过代码实现。其中堆排序的原理是将一颗二叉树初始化为堆依次将最后一个结点与堆顶结点交换。然后调整堆顶元素位置,重置堆。将二叉树初始化为堆可以看做从最后一个非叶子结点开始,依次调整子堆的堆顶元素,重置堆是指重置堆顶元素。这种算法的实现如下:= 0; $end--) ...
分类:
编程语言 时间:
2015-01-08 19:36:04
阅读次数:
286
Given an array of integers, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target, whe...
分类:
其他好文 时间:
2015-01-07 16:50:55
阅读次数:
158
选择类排序:1:简单选择排序O(n^2),空间O(1)
2:堆排序O(n乘以log以2为底,n的对数),空间复杂度O(1)
//选择排序
void SelectSort(int R[],int n)
{
int i,j,k;
int tmp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(R[...
分类:
编程语言 时间:
2015-01-06 18:06:14
阅读次数:
213
堆排序的思想: 堆是一种数据结构,可以将堆看作一棵完全二叉树,这棵二叉树满足,任何一个非叶节点的值都不大于(或不小于)其左右孩子节点的值。 将一个无序序列调整为一个堆,就可以找出这个序列的最大值(或最小值),然后将找出的这个值交换到序列的最后一个,这样有序序列就元素就增加一个,无序序列元素就减少一个...
分类:
编程语言 时间:
2015-01-06 13:31:23
阅读次数:
204
《算法导论》中堆排序主要将其分为堆的性质、维护堆的性质、建堆、堆排序算法堆的性质:给定一个结点的下标i,很容易计算得到它的父结点、左孩子和右孩子的下标(伪代码):PARENT(i) return i/2LEFT(i) return 2i RIGHT(i) return 2i+...
分类:
编程语言 时间:
2015-01-06 13:19:17
阅读次数:
176
(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树。二叉堆可以分为两种形式:最大堆和最小堆。若将记录按从大到小排列,建“小”顶堆。若将记录按从小到大排,建“大”顶堆。说明:在堆排序算法中,我们使用的是最大堆,最小堆通常用于构造优先队列。算法分析:时间复杂度是O(nlogn)。堆排序属于原址排序:...
分类:
编程语言 时间:
2015-01-05 23:09:50
阅读次数:
390
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