DSAA
DSAA
EVIL_6
即将翻身的咸鱼
展开
-
时间与空间复杂度
算法效率 第一种是时间效率,被称为时间复杂度,表示一个算法的理论上的耗时,衡量的是一个算法的运行速度。 第二种是空间效率,被称作空间复杂度,主要衡量一个算法所需要的额外空间。 时间复杂度 时间频度 一个算法中,语句执行的次数,被称为时间频度T(n) 大O符号: 用于描述函数渐进行为的数学符号。存在某个辅助函数f(n),当n->∞时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T...原创 2019-11-15 12:28:18 · 88 阅读 · 0 评论 -
顺序表
头文件"seqlist.h" #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include<windows.h> #include<cstdio> #include<malloc.h> #include<assert.h> #define SEQLIST_INIT_SIZE 8 #define INC...原创 2019-11-15 23:31:19 · 143 阅读 · 0 评论 -
无头不循环单链表
头文件"Slist.h" #pragma once #include <stdio.h> #include <stdlib.h> #include <assert.h> typedef int DateType; typedef struct PlistNode { DateType _date; struct PlistNode* _next; } Pli...原创 2019-11-24 14:45:39 · 113 阅读 · 0 评论 -
C----回文链表
请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 第一步:遍历链表,知道链表的长度,并找到中间节点(快慢指针实现);第二步:逆至前半段链表,使用两个指针,分别从头比较每一半的链表数值;需要注意的是链表长度可...原创 2019-11-29 19:38:42 · 137 阅读 · 0 评论 -
C----环形单链表
一、给定一个链表,判断链表中是否有环 为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。 如果 pos 是 -1,则在该链表中没有环。 /* Definition for singly-linked list struct ListNode { int val; ListNode *next; ListNode(in...原创 2019-11-29 19:38:58 · 107 阅读 · 0 评论 -
C----合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 /* Definition for singly-linked list. struct ListNode { int va...原创 2019-11-29 19:52:35 · 235 阅读 · 0 评论 -
C----链表的插入排序
从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素,并原 地将其插入到已排好序的链表中。 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。 示例 1: 输入: 4...原创 2019-12-03 00:11:10 · 196 阅读 · 0 评论 -
带头双向循环链表
1原创 2019-12-06 13:40:58 · 85 阅读 · 0 评论