`
文章列表
For ibus: 1.ibus-table-createdb -s vissible-ibus.txt 2.sudo cp vissible-ibus.db /usr/share/ibus-table/tables 3.sudo cp vissible.gif /usr/share/ibus-table/icons 4.restart ibus and add it in preferences For scim: 1.scim-make-table vissible-scim.txt -b -o vissible.bin 2.sudo cp vissible.bin / ...
  添加指令: locale-gen zh_CN.UTF-8   更新字符集: sudo locale-gen   设置当前用户编码: export LANG=zh_CN.UTF-8   设置系统编码: 在/etc/profile末尾添加一行 export LANG=zh_CN.UTF-8

快速排序

快速排序原理:快排采集分治法的思想,根据排序基准值把待数据分成两份,左边的数据比基准值小,右边的数据比基准值大,然后左右两边数据再按照各自己基准值划分...直至分解已排序的小数组,最终得到已排序数组。   关于基准值位置查找 微缩:最左边的设为基准值,从后往前找小的,找到移到前面,再从前往后找大的,再找到移到后面...直到找不到为止。 啰嗦:把最前面的数值当做基准值,然后从数组的右边位置向左找比基准值小的数据,没找到说明最前面的位置就是基准值位置;找到就移到最前面,然后从前面位置开始往后找比基准值大的数据,没找到说明前一个比基准值小的数据的原始位置就是基准值位置,把基准值放入该位置; ...

归并排序

归并排序原理:将数组二分,然后对二分后的数组继续使用归并排序...当分解后数组元数足够小时(为1),说明每个数组已经排序好,然后将二分的数组通过某个算法合并成已经排好序的数组,直至整个数组都排序好序。   时间复杂度:最优O(n),最坏O(nlogn),平均O(nlogn)   归并排序jdk源码优化方案: 1. 当分解后的数组元素个数小于7时,改用插入排序 2. 当二分后的已经排好序的两个数组,左边的最大值小于等于右边最小值时,不需要再合并 3. 复制一份源数组,在归并两个已排序数组时,只要将源数据按顺序移到目标数组中,可以避免在同一个数组整体移动产生开销,达到线性时间,以空 ...

选择排序

选择排序原理:从数组中查找最大值,然后与队首交换,然在剩下的数据中查找最大值,与余下队首交换…最后完成排序。   时间复杂度:O(n^2),稳定   public static <T extends Comparable<T>> int compare(T a, T b) { if (a == null){ return b == null ? 0 : -1; } if (b == null){ return 1; } return a.compareTo(b); } ...

插入排序

插入排序原理:从左往右依次将数据插入到前面已排序好的数组中。   时间复杂度:最优O(n),最坏O(n^2),平均O(n^2)   数据已经正序排好的情况最优,倒序最坏    public static <T extends Comparable<T>> int compare(T a, T b) { if (a == null){ return b == null ? 0 : -1; } if (b == null){ return 1; } return a.comp ...

冒泡排序

冒泡排序原理:从后往前,把小的数与前一个数交换,直到把最小的数交换到首位;首位后移,重复上述操作,得到有序数组。   时间复杂度:最优O(n),最坏O(n^2),平均O(n^2)   数据已经正序排好的情况最优,倒序最坏    public static <T extends Comparable<T>> int compare(T a, T b) { if (a == null){ return b == null ? 0 : -1; } if (b == null){ return 1; ...

希尔排序

希尔排序原理:对指定步长的数据进行插入排序,然后减小步长进行插入排序,直到步长为1时进行插入排序,最终完成所有数据的排序。   步长:具体的步长视数组长度而定,本例简单以len >>> k为步长,其中len为数组长度,k为1, 2, 3 ...   时间复杂度:最好O(nlog2n),最坏O(n^2)   最好最坏取绝于步长。   /** * @description 希尔排序 * 减少增量的插入排序 * @param data */ public static <T extends Comparable<T>> v ...

堆排序

堆排序原理:从最后一个树叉结点开始往前,将每个树叉结点所在树修复成大根堆,然后将堆的根结点(最大值)与末尾结点交换,去掉末尾结点,再将余下节点修复成大根堆,再将根结点与末尾结点交换...最后得到由小到大的已排数组。完全二叉树父子结点索引公式:父结点=i,左孩子=i*2-1,右孩子=i*2大根堆:父结点大于子节点的完全二叉树 时间复杂度:O(nlogn),稳定   public static <T extends Comparable<T>> int compare(T a, T b) { if (a == null){ return ...
1. jdk 8安装官方下载链接:jdk8安装到目录:G:\java\jdk1.8.0右键-我的电脑-属性-高级-环境变量添加JAVA_HOME属性,值为G:\java\jdk1.8.0添加path属性,在值的为前方添加%JAVA_HOME%/bin;window + R键打开运行窗口,输入cmd指令,进入命令行 ...
Markdown是一种轻量级标记语言,使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML或者HTML文档。 喜欢动手实践的人就自己下工具一步步安装插件吧,工具和插件地址: IDE:sublime 插件:sublime-markdown-extended、sublimetext-markdown-preview 比较懒的人就直接下附件解压使用,已经集成markdown插件及样式: iteye附件最大只支持10M,文件后缀只能为zip格式,请下载附件后将Sublime_Text_2.z01.zip更名为Sublime_Text_2.z01,右键解压即可使用 默认样式: sub ...
    今天公司内部局域网突然不能访问公司外网地址,导致公司的maven仓库、外网地址检出的svn项目等都不能访问,项目不能更新提交,那个急呀!     使用代理可以解决上述问题。电脑上已经装了翻"墙"利器goagent,默认代理地址127.0.0.1:8087,接下来给maven和svn配置配置。 MAVEN代理设置: 进入配置文件 ~/.m2/setting.xml,添加代理设置 <settings> ... <proxies> <proxy> &l ...
    官方的pinyin4j虽然强大,能够支持音标转换,但硬伤在于不支持词组。就此特地将pinyin4j的词库提取出来,研究了下,发现多音字有2000多,去掉音标就1000多,常用字也就500左右。然后估摸着一周左右的时间应该能够把常用多音字词库给整出来,于是就开干。从在线新华字典、汉典和百度词典等网站提取各种多音字词组,苦逼一周后终于算是完成了,虽然词库不够完美,但也能够解决97%以上多音节词组了。接下来是编码实现的事情,为了方便就把2个字以上的词组截掉(极少词组会受影响),具体实现自己看源码吧!         本作用于学习交流,有什么疑问或BUG请及时提出,以便于修正。 附上个使用 ...
Global site tag (gtag.js) - Google Analytics