算法设计
一只可爱的小狐狸
我亦无他,惟手熟尔
展开
-
排序算法
排序算法 1.直接排序算法 直接对数组进行排序 (1)算法步骤 将数组的元素挨个从第一个与后面所有的元素比较大小找到最小的,然后在比较第二个,直至遍历完整个数组 (2)代码实现 import java.util.Arrays; public class 直接排序 { public static void main(String[] args) { int[] array = {1,4,8,3,69,26,14,36,7,9}; directSort(arra原创 2021-04-14 15:47:59 · 594 阅读 · 0 评论 -
3.插值查找
3.插值查找 插值查找是在折半查找的基础上进行优化,将mid改进 mid = low+ (key-arr[low])/(arr[high-arr[low])*(high-low) public class InterpolationSearch { public static void main(String[] args) { int[]arr = {1,2,1,5,48,6,3,6,89,5,1,2,63,47,56,30}; int ke原创 2021-03-26 12:50:18 · 79 阅读 · 0 评论 -
2.二分查找
2.二分查找 二分查找也称为折半查找,属于有序查找的算法,也就是说,必须是一个有序的线性表,才能实现二分查找算法,用定值K先与中间结点的关键字比较,中间结点把线性表分成两个子表,若相等则表示查找成功,若不相等,在根据K与该中间结点关键字的比较结果确定下一步查找那个子表,这样递归进行,直到查找到或者查找结束发现表中没有这样的结点。 时间复杂度为O(log2n) //迭代实现 import java.util.Arrays; public class BinarySearch {原创 2021-03-25 16:21:55 · 343 阅读 · 3 评论 -
1.顺序查找
1.顺序查找 顺序超找也称为线性超找,属于无序超找算法,从数据结构的线性表的一端开始,顺序扫描,依次将扫描到的结点关键字与定值k相比较,若相等则表示查找成功,若扫描结束后仍没有找到关键字等于k的结点,表示查找失败,顺序查找适合用于顺序结构为顺序存储或链式存储的线性表。 顺序查找的时间复杂度为O(n) public class LinearSearch { public static void main(String[] args) { int[] arr = {1,原创 2021-03-24 19:26:43 · 329 阅读 · 5 评论