对于堆排序来说,首先需要做的是要建堆,建堆是一个不断调整堆的过程,能够在线性时间内完成。 堆排序的过程 1、建堆,建堆是不断调整堆的过程,从len/2处开始调整,一直到第一个节点,此处len是堆中元素的个数。建堆的过程是…
hash排序算法
哈希排序算法(Hash),是目前我认为速度最快的排序算法之一,时间复杂度为O(n),而且我认为很简单。它的主体思路是:定义一个数组,每个元素表示它的下标在数列中的个数,最后用循环完成排序。 例如给你一个上限不…
数据结构严蔚敏版快速排序算法c语言实现
//严蔚敏数据结构快速排序算法c语言实现 #include<stdio.h> typedef int InfoType; /* 定义其它数据项的类型 */ /* c10-1.h 待排记录的数据类型 */ #d…
算法导论上机实验3——用区间树实现简易课程管理系统,包括课程的插入、删除和查找
实验内容: 请利用区间树实现简易课表管理系统,支持: 1)插入一门新课; 2)删除课程; 3)查询特定时间区间的所有课程名称。注意:每门课信息包括课程编号、课程名称、上课时间。 源代码: LessonIntervalTr…
中文词典查找算法
1. 整词二分法 2. 逐字二分法 3.双数组-trie树 具体参见 汉语自动分词词典机制的实验研究
从数组中查找出最大最小两数的log(n)算法
从一个数组中选择出最大和最小两个数的一般实现方法是从数组第一个元素到最后一个挨个比较,用两个数分别记录max、min,时间复杂性为O(n).其实还有效率更高的方法,下面将介绍的方法时间复杂性为O(log(n)) &nbs…
LeetCode | Merge k Sorted Lists
题目: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complex…
AVL平衡二叉树(c++实现)
#include <iostream> #include <algorithm> #include <stack> #include <vector> using name…
poj--3630 Phone List(Trie字典树)
3630-Phone List Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 34575 Accepted: 9924 …
读 双数组Trie树算法优化
以前,做过一个翻译的程序,处理的只是英文字符,当时做的,构造了一个26叉树(26个英文字母,每一个字母对应一个树结果),当时也不知道这对应的数据结构术语是什么? 后来一个巧合的机会知道了Trie树数据结构,发现我以前做的…
2450 Problem B 树的高度
问题 B: 树的高度 时间限制: 1 Sec 内存限制: 128 MB 献花: 43 解决: 24 [献花][花圈][TK题库] 题目描述 一棵树有n个节点,其中1号节点为根节点。 输入 第一行是整数n,表示节点数 后面…
哈弗曼树的建立及其编码
#include “stdio.h” #define max 1000 #define maxsymbs 30 #define maxbits 10 #define maxnode 59 type…