数据结构与算法
kr.mao
full stack developer
展开
-
【数据结构与算法】图的创建与遍历
头文件Graph.h #ifndef GRAPH_H #define GRAPH_H #include using namespace std; const int MAXSIZE=5; //暂时只定义存在5个节点 0-4 class Graph //邻接矩阵建图 { private: int vertex[MAXSI原创 2013-04-25 14:20:33 · 2815 阅读 · 1 评论 -
【数据结构与算法】二叉树
头文件 BTree.h #ifndef BTREE_H #define BTREE_H #include #include using namespace std; template //树节点类 class BNode { public: BNode():left(NULL),right(NULL),da原创 2013-04-16 17:55:01 · 1207 阅读 · 0 评论 -
【数据结构与算法 01】冒泡排序
算法思想: 一共进行 array.size-1趟排序,每一趟排序,都将左右两个数进行比较大小,并且交换位置,这样的效果是:每一趟排序中,能找到最大的值冒泡到该趟排序的最后面,这样的话,第一趟排序,最后一个数是最大的,第二趟排序,倒数第二个数就是第二大的,最后一趟排序后 (因为最后一趟只有一个数,不用比较,所以比较次数是 array.size-1 趟),将得到有序数组 imp原创 2014-09-10 10:37:04 · 1546 阅读 · 4 评论 -
【数据结构与算法 02】选择排序
算法思想: 遍历数组array[N],索引为 i,然后算出[i+1,N-1]区间中的最小数,与array[i]交换,最后一个数因为只有一个,所以不用比较外循环为 N-2次 import java.util.Arrays; /*** * @title 选择排序 * @author michael.mao * @date 2014年9月10日 下午2:32:01 * @ver原创 2014-09-10 14:56:14 · 1297 阅读 · 0 评论 -
【数据结构与算法 00】二分插入排序
算法思想 从小到大排序 N1:遍历数组 array[10000], i 为数组坐标,从1开始 N2:以 i 为基数 tmpV=array[i],[0 ,i-1] 为区间坐标,(0+i-1)/2 为 mid 坐标 N3:比较 tmpV 与 array[mid],如果大于,则区间为 [mid+1,i-1],否则为[0,mid-1] N4:遍历所有 i 实现以上递归步骤,直到 右坐标l原创 2014-09-09 11:12:25 · 2876 阅读 · 3 评论 -
【数据结构与算法 03】直接插入排序
算法思想(从小到大排序) 将待排序数组看左右两个序列,左序列有序,有序列无序。假设第一个数array[0]为有序列,那么array[1,N-1]为无序列.循环遍历无序列,找出array[i]在有序列中应该插入的位置,插入。例如一个乱序数组为{1,3,2,4 , 假如有序列为 { 1,3 } 无序列循环到2时 ,那么2在有序列中的位置应该是1 - 3 中间 , 所以 [ 3. . .2 )原创 2014-09-16 18:22:02 · 1258 阅读 · 0 评论