数据结构
熬夜肝代码
这个作者很懒,什么都没留下…
展开
-
简单排序算法代码:冒泡和选择
笔记原创 2022-09-06 19:26:18 · 222 阅读 · 1 评论 -
备忘录:交换双向链表元素
备忘录原创 2022-06-01 19:23:14 · 281 阅读 · 0 评论 -
KMP算法代码实现
#include<stdio.h>#include<string.h>#include<malloc.h>typedef struct { char data[50]; int length;}sqlist;void initsqlist(sqlist &s){ printf("请输入字符串:\n"); scanf("%s",s.data); s.length=strlen(s.data); printf("原创 2022-05-30 17:37:33 · 304 阅读 · 0 评论 -
堆排序(含算法分析和代码实现)
/*基本思想{ 选择排序:每一趟在后面n-i+1个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到n-i趟做完,待排序元素只剩下1个,就不用再选了。(堆排序为例) 堆排序步骤(大根堆为例): { 基本思想:首先将表中的n个元素建成初始堆,根据堆本身的特点可知,栈顶元素就是最大值。输出栈顶元素后,通常将堆底元素送入栈顶,但这时候根节点可能不满足堆的性质 堆被破坏,将栈顶元素向下调整使得其继续保持大顶堆的性质,在输出栈顶元素,如此重复,直到堆中仅原创 2022-05-28 19:17:06 · 406 阅读 · 0 评论 -
快速排序算法(含详细代码和算法分析)
/*基本思想{ 交换排序:根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。(冒泡,快速排序) 快速排序步骤(升序为例): { 基本思想:基于分治法,在待排序表L[1..N]中任取一个元素pivort,作为枢轴(通常取首元素),通过一趟排序将待排序表划分为独立的两部分,使得左边的元素值都小于枢轴元素, 右边的元素值都大于枢轴元素值,则将枢轴元素放到对应位置上,分别递归对左右两个独立的子表重复上述操作。直到每部分只有一个元素为止。 }原创 2022-05-27 19:34:37 · 748 阅读 · 0 评论 -
冒泡排序(含代码和思想以及简要算法分析)
/*基本思想{ 交换排序:根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。(冒泡,快速排序) 冒泡排序步骤(升序为例): { 基本思想:从后往前(从前往后也可以)两两比较元素的值,若为逆序,则交换,直到序列比较完。称为第一趟冒泡。 结果是将最小的元素放到序列第一个位置,下一趟排序,前面确定的元素不在参与比较,每次排序都将排序的序列中 的最小值放到序列对应的位置,经过n-1次,就能将可以完成排序。 } 直接插入排序算法分析: {原创 2022-05-27 17:56:35 · 201 阅读 · 0 评论 -
二叉树的三种递归遍历
二叉树的三种遍历方式原创 2022-05-13 19:40:45 · 246 阅读 · 0 评论 -
希尔排序(含详细代码和手算结果)
希尔排序学习笔记原创 2022-05-26 19:27:41 · 513 阅读 · 0 评论