🚙

💨 💨 💨

×

  • Categories

  • Archives

  • Tags

  • About

排序算法四之谈一谈堆排序

Posted on 08-24-2014 | In Algo

此文用的是最大堆, 最大堆的堆排序之后的数组是升序, 最小堆反之.
堆排序 HeapSort 由 以下两部分组成 :

  • 堆化 MaxHeapify
  • 建堆 BuildMaxHeap.

. . .

排序算法三之谈一谈快排优化和二分查找

Posted on 08-22-2014 | In Algo

快速排序

与归并排序一样, 快排也是用了分治的思想。

特别注意 : 快排的核心模块是Partition, 而Partition的复杂度为O(N).

你可以想象一个两副牌然后随意取出一张牌pivot,其他的所有牌都跟这张pivot牌比较,

大的放右边那一摞A,小的放左边B。
接着再从左边这一摞B再随意取出一张牌pivot,其他的所有牌都跟这张pivot牌比较,

大的放右边那一摞,小的放左边,递归下去。
A也重复上述步骤递归。

递归结束之后, 左边的都比右边的小, 而且是有序的。

效率很差的情况

对于分治算法,当每次划分时,算法若都能分成两个等长的子序列时,那么分治算法效率会达到最大。也就是说,基准的选择是很重要的。选择基准的方式决定了两个分割后两个子序列的长度,进而对整个算法的效率产生决定性影响
所以当如果一个有序递增序列, 每次选基准都选最后一个, 那肯定效率很差了啊

算法导论的快排C++实现版本

. . .

排序算法二之谈一谈冒泡插入归并桶排序

Posted on 08-20-2014 | In Algo

注:以下所有代码皆可以直接运行, 都已经测试过。

冒泡排序(可略过, 不实用)

想象这里有很多泡泡,最大的泡泡每次循环之后浮到数组的最后面

谈一谈各类算法的复杂度和常用数据结构

Posted on 08-19-2014 | In Algo

因为之前的笔记和书籍相关知识都是零零散散的, 没有一个汇总, 所以写了这篇博客。有些算法很简单,复杂度一眼都能看得出来, 几乎不需要记忆 , 但是有些算法或者数据结构的操作的复杂度就不是一眼可以看得出来, 推导也是很费时间的, 所谓常识就是应该熟记于心且被认可的知识。

必须掌握的知识

  • DataStructure
    • 链表
    • 二叉树
      • 二叉搜索树
    • 栈
    • 队列
    • 散列表
  • 算法
    • 二分查找
    • 快速排序
    • 归并排序
    • 堆排序
    • 插入排序
    • 树的插入/查找/删除
    • 广度优先搜索
    • 深度优先搜索

. . .

三种编程命名规范

Posted on 05-09-2014 | In Misc

匈牙利命名法:

开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。

ex:
int iMyAge; “i”是int类型的缩写;
char cMyName[10]; “c”是char类型的缩写;
float fManHeight; “f”是float类型的缩写;

其他:
前缀类型 a b by c cb cr cx,cy dw fn h i l lp m_ n np p s sz w (一一对应关系)

  • 数组 (Array)
  • 布尔值 (Boolean)
  • 字节 (Byte)
  • 有符号字符 (Char)
  • 无符号字符 (Char Byte,没有多少人用)
  • 颜色参考值 (ColorRef)
  • 坐标差(长度 ShortInt) Double Word 函数 Handle(句柄) 整型 长整型 (Long Int)
  • Long Pointer 类的成员 短整型 (Short Int)
  • Near Pointer Pointer 字符串型 以 null 做结尾的字符串型 (String with Zero End)
  • Word

. . .

Bash定制

Posted on 02-01-2014 | In Linux

profile和bashrc和bash_profile的区别

  • /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从 /etc/profile.d 目录的配置文件中搜集shell的设置.
    所以如果你有对/etc/profile有修改的话必须得重启你的修改才会生效,此修改对每个用户都生效。
  • /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
    如果你想对所有的使用bash的用户修改某个配置并在以后打开的bash都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个bash即可生效。

  • ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
    此文件类似于/etc/profile,也是需要需要重启才会生效,/etc/profile对所有用户生效,~/.bash_profile只对当前用户生效。

  • ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)
    此文件类似于/etc/bashrc,不需要重启生效,重新打开一个bash即可生效, /etc/bashrc对所有用户新打开的bash都生效,但~/.bashrc只对当前用户新打开的bash生效。

  • ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是”父子”关系.

~/.bash_profile 是交互式、login 方式进入bash 运行的;
~/.bashrc 是交互式 non-login 方式进入bash 运行的;

通常二者设置大致相同,所以通常 ~/.bash_profile 会在其文件中加入以下代码来调用 ~/.bashrc :

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

. . .

从零开始搭建一台简易Ubuntu服务器三

Posted on 08-27-2013 | In Linux

安装MySQL

执行命令安装MySQL:sudo apt-get install mysql-server
安装的时候会提示填入一个root的初始密码,先输入个8做初始密码吧

导入客户数据库base_account

mysql -uroot -p < *.sql(某个sql文件)

安装svn并checkout一个svn服务器上的目录

  1. 进入 /data/www目录下 :cd /data/www
  2. 执行命令安装:sudo apt-get install subversion
  3. checkout一个目录(比如svn://112.124.26.188/myapp/td/01CServer_PHP/errorMsg),
    执行命令:svn checkout svn://112.124.26.188/myapp/td/01CServer_PHP/errorMsg (或者 svn co svn://112.124.26.188/myapp/td/01CServer_PHP/errorMsg)

. . .

从零开始搭建一台简易Ubuntu服务器二

Posted on 08-25-2013 | In Linux

安装nginx

如若有有不明白,还可以前往参考

执行命令安装nginx:sudo apt-get install nginx
测试是否安装成功:在本机的浏览器里访问 localhost ;如果现实”Welcome to nginx!”,表明你的 Nginx 服务器安装成功!
启动 Nginx:sudo /etc/init.d/nginx start
关闭 Nginx:sudo /etc/init.d/nginx stop
重启 nginx:sudo /etc/init.d/nginx restart 或者 sudo service nginx restart
sudo service apache2 stop (如果之前装了apache2则需要sudo apt-get remove apache2 卸载掉apache2然后执行这个stop命令)

. . .

1…262728293031323334353637
Mike

Mike

🚙 🚗 💨 💨 If you want to create a blog like this, just follow my open-source project, "hexo-theme-neo", click the GitHub button below and check it out ^_^ . It is recommended to use Chrome, Safari, or Edge to read this blog since this blog was developed on Edge (Chromium kernel version) and tested on Safari.

11 categories
289 posts
111 tags
about
GitHub Spotify
© 2013 - 2025 Mike