博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  数据结构与算法

摘要:常见算法的时间复杂度 阅读全文

posted @ 2021-01-28 11:47 薄辉'静谧 阅读(58) 评论(0) 推荐(0)

摘要:顺序表 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元,依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。 顺序表API设计 类名 Seque 阅读全文

posted @ 2020-08-04 20:59 薄辉'静谧 阅读(446) 评论(0) 推荐(0)

摘要:排序的稳定性 稳定性的定义 数组arr中有若干元素,其中A元素和B元素相等,并且A元素在B元素前面,如果使用某种排序算法排序后,能够保证A元素依然在B元素的前面,可以说这个该算法是稳定的。 稳定性的意义 如果一组数据只需要一次排序,则稳定性一般是没有意义的,如果一组数据需要多次排序,稳定性是有意义的 阅读全文

posted @ 2020-08-04 16:24 薄辉'静谧 阅读(554) 评论(0) 推荐(0)

摘要:快速排序 快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 需求: 排序前:{6, 1, 2, 7, 阅读全文

posted @ 2020-08-04 16:22 薄辉'静谧 阅读(173) 评论(0) 推荐(0)

摘要:归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 需求: 排序前:{8,4,5,7,1,3,6,2} 排序后:{1,2, 阅读全文

posted @ 2020-08-04 16:16 薄辉'静谧 阅读(327) 评论(0) 推荐(0)

摘要:递归 定义: 定义方法时,在方法内部调用方法本身,称之为递归. public void show(){ System.out.println("aaaa"); show(); } 作用 它通常把一个大型复杂的问题,层层转换为一个与原问题相似的,规模较小的问题来求解。递归策略只需要少量的程序就可以描述 阅读全文

posted @ 2020-08-04 16:07 薄辉'静谧 阅读(101) 评论(0) 推荐(0)

摘要:希尔排序 希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本。 前面学习插入排序的时候,我们会发现一个很不友好的事儿,如果已排序的分组元素为{2,5,7,9,10},未排序的分组元素为{1,8},那么下一个待插入元素为1,我们需要拿着1从后往前,依次和10,9,7, 阅读全文

posted @ 2020-08-04 16:02 薄辉'静谧 阅读(147) 评论(0) 推荐(0)

摘要:插入排序 插入排序(Insertion sort)是一种简单直观且稳定的排序算法。 插入排序的工作方式非常像人们排序一手扑克牌一样。开始时,我们的左手为空并且桌子上的牌面朝下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行 阅读全文

posted @ 2020-08-02 22:38 薄辉'静谧 阅读(826) 评论(0) 推荐(0)

摘要:选择排序 选择排序是一种更加简单直观的排序方法。 需求: 排序前:{4,6,8,7,9,2,10,1} 排序后:{1,2,4,5,7,8,9,10} 排序原理: 1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其 阅读全文

posted @ 2020-08-02 22:26 薄辉'静谧 阅读(110) 评论(0) 推荐(0)

摘要:冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 需求: 排序前:{4,5,6,3,2,1} 排序后:{1,2,3,4,5,6} 排序原理: 比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。 对每一对相邻元素做同样的工作,从开始第一对元素到 阅读全文

posted @ 2020-08-02 22:14 薄辉'静谧 阅读(237) 评论(0) 推荐(0)

摘要:描述 找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。 输入 输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数。 输出 按下列格式输出鞍点: Array[i][j]=x 其中x代表鞍点,i和j为鞍点所在的数组行和列下标 阅读全文

posted @ 2018-11-30 22:26 薄辉'静谧 阅读(1815) 评论(0) 推荐(0)

摘要:描述 用C++实现类Base和Derived,使其能输出样例信息。 主函数里的代码已经给出,请补充完整,提交时请勿包含已经给出的代码。 int main() { Base b; Base *p = new Derived; delete p; return 0; } 输入 无 输出 输出样例信息 样 阅读全文

posted @ 2018-05-30 11:48 薄辉'静谧 阅读(230) 评论(0) 推荐(0)

摘要:代码测试: #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct Bitnode{ int data; struct Bitnode *lchild,*rchild; }Bitnode; Bitnode *a[1 阅读全文

posted @ 2018-05-11 20:21 薄辉'静谧 阅读(219) 评论(0) 推荐(0)

摘要:描述 创建一个顺序栈,能够完成栈的初始化、入栈、出栈、获取栈顶元素、销毁栈等操作。 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。 输入 输入数据由以下几种命令组成: (1)push x:将x压入栈 (2)pop:出栈 (3)top:获取栈顶元素 每个命令占一行,以EOF结束。 输出 阅读全文

posted @ 2018-04-30 21:50 薄辉'静谧 阅读(374) 评论(0) 推荐(0)

摘要:描述 创建一个链栈,能够完成栈的初始化、入栈、出栈、获取栈顶元素、销毁栈等操作。 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。 void Destroy(LinkStack *top) { LinkStack *p=top; while(p) { top=p->next; free( 阅读全文

posted @ 2018-04-25 10:59 薄辉'静谧 阅读(580) 评论(0) 推荐(0)

摘要:#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #define Max 5 typedef struct SqQueue{ int *base; //动态开辟内存 int front; //头指针 in 阅读全文

posted @ 2018-04-24 18:12 薄辉'静谧 阅读(274) 评论(0) 推荐(0)

摘要:描述 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。 输入 每个测试输入包含1个测试用例 阅读全文

posted @ 2018-04-23 21:55 薄辉'静谧 阅读(160) 评论(0) 推荐(0)

摘要:描述 用C++实现日期类CDate和时间类CTime,并在次基础上利用多继承实现日期时间类CDateTime,使其能输出样例信息。 主函数里的代码已经给出,请补充完整,提交时请勿包含已经给出的代码。 int main() { int y, m, d, hh, mm, ss; while(cin>>y 阅读全文

posted @ 2018-04-23 17:42 薄辉'静谧 阅读(1306) 评论(0) 推荐(0)

摘要:描述 完成链表的创建、元素查找和删除等操作。 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。 void PrintLinkList(Node *head) { int flag = 0; Node *p = head->next, *q; while(p) { if(flag) pri 阅读全文

posted @ 2018-04-22 21:02 薄辉'静谧 阅读(563) 评论(0) 推荐(0)

摘要:描述 创建一个循环链表,并从任意一个节点出发,遍历整个链表。 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。 void Destroy(Node* head) { Node *p; while(head->next!=head) { p = head->next; head->next 阅读全文

posted @ 2018-04-22 18:13 薄辉'静谧 阅读(546) 评论(0) 推荐(0)