数据结构与算法学习
文章平均质量分 54
以基本数据结构为线索,结合各类算法进行分类提升,采用概念理论+简单例题+提升例题的方式,提高算法水平
风落_
coding
展开
-
【剑指 Offer Ⅱ】个人刷题笔记
一、整数常解决问题位运算,快速幂思想,快速除法小技巧:根据 i & (i-1) 计算 i 的二进制形式中的 1 的个数(面试题 3:前 n 个数字二进制数字中 1 的个数)小技巧:累加二进制数位求余(面试题 4:只出现一次的数字)位运算也许可以对算法进行优化!二、数组ArraysList 常用方法;add();remove();get();set();size();isEmpty();contains();clear();LinkedList 常原创 2022-03-29 21:21:52 · 454 阅读 · 0 评论 -
数组二分查找-Java 实现
二分查找法作为一种常见的查找方法,大大缩短了搜索时间,时间复杂度只有O(logn),但它必须在有序数据中进行查找。二分查找很好写,却很难写对,出错原因主要集中在判定条件和边界值的选择上,很容易就会导致越界或者死循环的情况。下面给出 Java 的实现代码:import java.util.Arrays;import java.util.Scanner;public class Test01 { public static void main(String[] args) {原创 2022-01-21 18:47:58 · 347 阅读 · 0 评论 -
02-线性结构1 两个有序链表序列的合并 (15分)附解析注释
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */原创 2020-10-11 16:29:35 · 496 阅读 · 0 评论 -
01-复杂度3 二分查找 (20分)附解析注释
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};L是用户传入的一个线性表,其中ElementType元素可以原创 2020-10-11 15:54:43 · 424 阅读 · 0 评论