java算法之数组

1.数组定义 数组:是一种 线性数据结构,用 连续的内存空间,来存储 相同类型的数据 2.线性表与非线性表 线性表:数组、链表、队列、栈等 非线性表:二叉树、堆、图等...

java算法之快速排序算法

快速排序算法本质上是通过把一个数组划分为两个子数组,然后递归的调用自身为每一个子数组进行快速排序来实现的。 这里首先讲递归的快速排序算法。 1.递归的排序算法 public void recQuickSort(int l...

java算法之快速排序算法(优化)

之前有记录一版快速排序算法。 这里记录对它优化的一个版本。 之前快速排序一个缺点,就是使用递归算法对规模非常大的数据项进行排序可能会引起栈溢出,导致存储错误。 而且上面的代码的实现方式中, 对枢纽的不同的选择,会...

java算法之链表

1.数组和链表的内存分布 数组需要一块连续的内存空间,而链表则通过“指针”将一组零散的内存块串联起来 2.三种常见的链表 单链表、双向链表、循环链表 2.1 单链表 链表通过指针将一组零散的内存块串联...

java算法之栈

1.栈主要包括两个操作 出栈和入栈;也就是在栈顶插入一个数据和从栈顶删除一个数据; 具有后进先出、先进后出的特性。   栈是一种操作受限的线性表,只允许在端插入和删除数据。...

java算法之队列

1. 队列:先进先出 队列的基本操作: 入队enqueue(),放一个数据到队列尾部; 出队dequeue(),从队列头部取一个元素; 如下,和栈的对比图:...

java算法之正弦和余弦

题目: 输入正整数n (n<360), 输入 n度的正弦、余弦函数值。提示:使用数学函数 c语言实现 #include<stdio.h> #include<math.h> int main(...

java算法之三角形

题目: 输入三角形 3 条边的长度值 (均为正整数),判断能否为直角三角形的 3 个边长。 如果可以,则输出 yes , 如果不能,则输出 no 。 如果根本无法构成三角形,则输出 not a triangle。 思路: 直角...

java算法之年份

题目: 输入年份,判断是否为闰年。如果是,则输出 yes, 否则输出 no。 提示:简单的判断除以4的余数是不够的。 思路: 1. 能被4整除,并且不能被100整除年份 2.能被400整除的年份 c语言实现 #i...

java算法之递归

递归是一种广泛的算法。 其中用到了递归的数据结构和算法:DFS深度优先搜索、前中后序二叉树遍历等。 递归公式:f(n)=f(n-1)+1 其中f(1)=1   1.递归需要满足的三个条件...