随笔分类 - 数据结构学习
摘要:前序非递归遍历(借用栈结构): ①将根节点入栈; ②判栈空,获取栈顶元素输出; ③判断右子树是否为空,再判断左子树是否为空,在回至②执行。 void PreOrder(BinTree bt) { stack<BinTree> astack; BinTreeNode * p; astack.push(
阅读全文
摘要:堆排序分为大根堆和小根堆。 堆排思想:(采用树的概念来组织数据结构,在这里我是根据小根堆对数据进行排序) ①首先我们Insertheap一组数据,在插入的过程中采用向上调整(Shiftup),每次将插入的最小值放在堆顶(heap[0]). ②然后我们Removeheap创建好的堆,将heap[0]节
阅读全文
摘要:希尔排序增量的问题,引用一本数据结构书中所说: 图示希尔排序思想:
阅读全文
摘要:插入排序思想:将插入的元素记录,与前面的元素进行比较大小,查询到插入的位置,然后再将比它大的元素向后面移动,空出插入的位置,将元素插入。 剩下的和②步骤一样。。。 代码这里给出了3种,从基础到优化 主方法:
阅读全文
摘要:选择排序思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
阅读全文
摘要:冒泡排序优化算法思想:我们通过在程序定义了一个bool类型的flag变量,用来判断往后的循环当中,数组是否已经是有序的,每一轮循环都会设置其值为true,当有元素对调位置时,就将flag的值设置为true,表示该数组还不是有序数组。每一轮都要判断flag的值,如果判断当前一轮操作没有元素有位置调换,
阅读全文

浙公网安备 33010602011771号