我们知道输出元素个数为n的数组的全排列,一共有n的阶乘种可能。即第一个位置可以有n种选择,第二个位置有(n-1)种选择,第三个位置有(n-2)种选择…共有n*(n-1)*(n-2)*…*1。
继续阅读“输出数组的全排列”
分类:DataStructure Algorithm
基础排序算法之归并排序
归并排序是利用“归并”操作的一种排序方法。归并排序的基本操作是将两个位置相邻的有序记录子序列R[i..m]和R[m+1..n]归并为一个有序记录序列R[i..n]。
继续阅读“基础排序算法之归并排序”
基础排序算法之快速排序
快速排序是从冒泡排序改进而得的一种“交换”排序方法。它的基本思想是通过一趟排序将待排记录分割成相邻的两个区域,其中一个区域中的关键字均比另一个区域中的关键字小,然后分别再对两个区域进行排序。
继续阅读“基础排序算法之快速排序”
基础排序算法之冒泡排序,选择排序和插入排序
冒泡排序的基本思想是通过对无序序列中的相邻元素进行“比较”和“交换”,从而实现关键字较小的元素向“一头”漂浮,而较大的元素向“另一头”下沉。
继续阅读“基础排序算法之冒泡排序,选择排序和插入排序”
【转载】数据结构之哈希表学习总结
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
继续阅读“【转载】数据结构之哈希表学习总结”
基础查找算法之二分查找
二分查找(binary search)又称二分查找。其查找过程是,先确定待查记录所在范围,然后逐步缩小范围,直至找到该记录或者当查找区间缩小到0也没有找到关键字等于给定值的记录为止。
继续阅读“基础查找算法之二分查找”
数据结构之二叉树的学习总结
二叉树是一种重要的树形结构,其结构定义如下:二叉树(binary tree)是n(n>=0)个数据元素的有限集,它或为空集(n=0),或者含有唯一的称为根的元素,且其余元素分为互不相交的子集。
继续阅读“数据结构之二叉树的学习总结”