数据结构和算法
文章平均质量分 65
JieTouLangRen
C/C++/Java
展开
-
Java回溯法求全排列
public class Arrange { private static final int n = 5; private static int x[] = new int[n + 1]; private static int count = 0; public static void main(String args[]) {原创 2011-03-03 15:40:00 · 2033 阅读 · 0 评论 -
全排列算法及其C++实现
不论是哪种全排列生成算法,都遵循着“原排列”→“原中介数”→“新中介数”→“新排列”的过程。其中中介数依据算法的不同会的到递增进位制数和递减进位制数。关于排列和中介数的一一对应性的证明我们不做讨论,这里仅仅给出了排列和中介数的详细映射方法。· 递增进位制和递减进位制数 所谓递增进位制和递减进位制数字是指数字的进制随着数字位置的不同递增或递减。通常我们见到的都是固定进制数字,如2进制原创 2011-10-29 17:09:24 · 5678 阅读 · 0 评论 -
常见排序算法
冒泡排序:template void bubbleSort(T array[],int size){ int flag = 0; for(int i=0; i<size; ++i){ flag = 0; for(int j=0; j<size-i; ++j){ if(array[j] > array[j+1]){ T tmp = array[j]; array[原创 2011-10-26 22:28:33 · 593 阅读 · 0 评论 -
MySQL中文乱码问题解决之道
今天第一次用MySQL,遇到了中文乱码问题,问题描述如下: 直接通过Navicat编辑不会出现乱码,通过JDBC插入以及读取的中文乱码。因为之前用过Oracle,于是尝试找到MySql的配置文件。我用的是MySQL 5.5,在其安装目录下找到my.ini,设置default-character-set=gb2312以为这样改了就好了,可是测试还是乱码,接着试原创 2012-03-05 20:04:22 · 951 阅读 · 0 评论 -
快速排序中的区间划分
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。算法的思路很清晰,但是如果在区间划分过程中边界值没有处理好,也是很容易出现bug的。下面给出两种比较清晰的思维来指导区间划分代码的编原创 2014-01-04 16:08:31 · 3653 阅读 · 0 评论 -
常见hash算法
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列转载 2014-09-27 16:44:09 · 3028 阅读 · 0 评论