当一个数组有序时,要向其中插入元素,可以先使用二分搜索查找其要插入的位置,位置确定后可以执行插入操作。
其中二分搜索的循环体如下(部分代码,具体见文章最后): while(low<=high){//循环条件
mid = (low+high)/2; if(a[mid]<val){
low = mid+1;
}else if(...
分类:
编程语言 时间:
2015-07-02 10:08:37
阅读次数:
131
我们自己每天使用的电脑能同时运行多个应用程序,没有感觉到卡顿,电脑为每个应用程序的事件分配了一个优先级,移动端的手机也是,通常不管我们是在看电影,发短信只要有电话,电话绝对是优先级最高的。这个时候我们需要一种合理的数据结构删除最大元素和插入元素,我们可以称之为优先队列。实现这种优先队列最合适的数据结...
分类:
编程语言 时间:
2015-06-29 08:42:21
阅读次数:
138
学习一下rope做一下笔记.....头文件#include 文件头using namespace __gnu_cxx;变量声明rope x;成员函数size() O(1)放心用.push_back(v) 不解释push_front(v) .....insert(p,v) 在位置p插入元素v. 插入后...
分类:
其他好文 时间:
2015-06-25 17:03:07
阅读次数:
146
直接插入排序是将元素按顺序插入已经排好序的序列中。对于待插入的元素,如果比最后一个元素还大,则不用处理。否则,从后边元素开始比较,并顺次后移,直到碰到元素小于或者等于该元素。
设置第一个元素位置为哨兵,用来存放待插入元素。
#include
#include
#include
using namespace std;
#define maxn 20
typedef struct SqL...
分类:
编程语言 时间:
2015-06-22 16:29:08
阅读次数:
201
容器简介
定义及初始化
末尾插入元素
遍历 size 函数是可以动态增加的
通过下标操作增加改变vector内容不是安全的操作
仅能对已存在元素进行下标操作不存在会crash
将元素一个容器复制给另外一个容器类型必须匹配容器类型和元素类型必须相同
迭代器简介
定义
begin和end操作
迭代器的自增和解引用操作
迭代器的算术操作
const_iterator 只读容器简介定义及初始化vector<...
分类:
其他好文 时间:
2015-06-22 06:29:48
阅读次数:
253
js jquery插入元素后事件会被注销document.body.innerHTML +=test //这个会注销事件$(document.body).append(str);//使用这个也可以绑定事件。例子://快捷键双击 $(".app_shortcut_item").dblcl...
分类:
Web程序 时间:
2015-06-21 23:38:52
阅读次数:
169
1. 问题描述 用队列来模拟栈的操作。实现如下栈操作:
push(x) 将元素x入栈。
pop() 出栈。
top() 获取栈顶元素。
empty() 判断是否为空。
注意:只能用队列的标准操作,队头取元素,队尾插入元素,获取队列的大小,以及队列是否为空。2 方法和思路 可以用两个队列q1和q2来实现栈的操作,设q2为辅助队列。
入栈时将元素都存入q1队列中。
出栈时将q1中...
分类:
其他好文 时间:
2015-06-20 12:00:50
阅读次数:
123
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、...
分类:
编程语言 时间:
2015-06-12 19:19:22
阅读次数:
133
ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际
存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元
素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由
于使用了 synchronized 方法(线程安全),通常性能上较 ArrayList 差,而
LinkedList 使用双向链表实现存储,按序号索引数据需...
分类:
其他好文 时间:
2015-06-09 17:31:45
阅读次数:
116