随笔分类 - C/C++
Just so so ...
摘要:无需插入会导致插入速度快但检索速度慢, 有序的插入会导致插入速度慢但检索速度快. hash 是一个折中的方法.
阅读全文
摘要:这里实现了一个对命令行进行分解的基类. 基类不能直接使用, 必须派生一个子类, 通过映射对所输入的命令进行分解. 这个框架的灵感来自于 MFC 中的 Message Mapping. 具体代码, 参见 Cmder.h 中 BEGIN_OPT ... END_OPT 附近. vs 2008 + win 7 下测试通过.
阅读全文
摘要:void bubble(int arr[], int len){ for (int i = 0 ;i < len ;i++) { for (int j = 0 ;j < len - i - 1 ;j++) { if (arr[j] > arr[j+1]) { int tmp = arr[j] ; arr[j] = arr[j+1] ; arr[j+1] = tmp ; }//if }//...
阅读全文
摘要:
写了三天, 目前只支持 int 型变量和常量与指针的组合. 在勇攀自动机的高山中不行摔回起点...
阅读全文
写了三天, 目前只支持 int 型变量和常量与指针的组合. 在勇攀自动机的高山中不行摔回起点...
阅读全文
摘要:#include <iostream>using namespace std ;int main (int argc, char **argv){ // 由于缺少一个 ',' 导致两个字符串合并, 从而少初始化了一个元素. const char *arr[5] = { "1", "2", "3" "4", "5" } ; for (int i = 0;i < int(sizeof(arr)/sizeof(arr[0])); i++) { cout <<
阅读全文
摘要:红黑树是一种二叉查找树, 但在每个基点上增加一个存储位表示结点的颜色, 可以说是 RED 或 BLACK. 通过对任何一条从跟到叶子的路径上各个结点着色方式的限制, 红黑树确保没有一条路径会比其他路径长出两倍, 因而是接近平衡的.
阅读全文
摘要:// Tree.h//#ifndef TREE#define TREE#include <stddef.h>struct Node{ int key ; Node *p ; // Pointer to parent Node *l ; // Pointer to left child Node *r ; // Pointer to right child Node(int key) { this->key = key ; p = l = r = NULL ; } // Bitwise copy constructor is good enough // Replace is
阅读全文
摘要:// main.cpp// Find the N-th minimum value, based on Partition#include <iostream>#include <iterator>#include <algorithm>using namespace std ;int Minimum_N(int arr[], int s, int e, int n){ // Partition int j = s ; for (int i = s ;i < e-1 ;i++) { // Exchage two integer if (arr[i] &
阅读全文
摘要:快排是一种不稳定排序, 其最差时间复杂度是 n^2. 但快排是通常排序的最佳实践选择. 因为其平均期望运行时间是 nlog(n).
阅读全文
摘要:此算法优秀在最多比较了 3*n / 2 次就完成了任务. 并且将待分析数组分别以奇数和偶数处理, 从而大大降低了分析的难度.
阅读全文
摘要:堆排序为什么美?
记得在 coolshell.cn看到一个文章, 是一个日本人做的排序算法的演示程序, http://coolshell.cn/articles/3933.html, 很是不错, 当你看到堆排序时, 就会被那魔法般的变幻所吸引...
后来仔细思考堆排序, 堆排序为什么美?
堆排序是一个迭代的过程, 每次子排序对于整个带排序的数组是以 2^n 的前进速度进行的, 所以建堆完成后, 排序的时间复杂度是 nlog(n). 面对这个公式我曾经很淡定, 但是当我看到 n > 200 甚至更多的时候, 我变得敏感起来.
什么是优秀, 优秀是在思想上下功夫, 不是用时间来补拙劣.
阅读全文
浙公网安备 33010602011771号