JAVA数组中常见的算法
- 数组中常用的算法:
1、 数组元素的赋值相关:杨辉三角、回形数。
2、求数值型数组中元素的最大值、最小值、平均数、总和。
3、数组的复制、反转、查找(线性查找、二分法查找)。
4、数组元素的排序算法:内部排序和外部排序
- 衡量排序算法的优劣:
a、时间复杂度
b、空间复杂度
c、稳定性
- 十大内部排序算法:
- 选择排序:直接选择排序、堆排序
- 交换排序:冒泡排序、快速排序
- 插入排序:直接插入排序、折半插入排序、shell排序
- 归并排序
- 桶式排序
- 基数排序
- 算法的5大特征:
输入:有0个或多个输入数据,并有清楚地描述和定义
输出:至少有一个或多个输出结果,不可以没有
有穷性:在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成
确定性:每一步都有确定的含义,不会出现二义性。满足确定性的算法也称为确定性算法。
可行性:每一步都是清楚且可行的
ps:现在有更广泛的概念,例如非确定性的算法,并行算法、概率算法。另外人们也关注并不要求终止的计算描述,有时被称为过程。
- 小科普
- 线性查找
实现思路:通过遍历的方式,一个一个的数据进行比较、查找
适用性:具有普遍适用性
-
- 二分法查找
实现思路:每次比较中间值,折半的方式检索
适用性:前提是数组必须有序
浙公网安备 33010602011771号