算法知识
算法的常识
峰子_狂人
我为JAVA狂
展开
-
二分查找(BinarySearch)
二分查找是否存在 二分查找要求线性表必须采用顺序存储结构。 1.假设按升序排列,将表中间位置记录的关键字(下标为middle)与查找关键字(value)比较, 如果midvalue=value,则查找成功; 否则利用midvalue将表分成前、后两个子表,如果midvalue>value,则进一步查找前一子表, 否则进一步查找后一子表。 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 public class Code01_BinarySearch {原创 2021-03-27 12:17:20 · 142 阅读 · 0 评论 -
插入排序(insertSort)
插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 步骤: 1.从第一个元素开始,该元素可以认为已经被排序; 2.取出下一个元素,在已经排序的元素序列中从后向前扫描; 3.如果该元素(已排序)大于新元素,将该元素移到下一位置; 4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置; 5.将新元素插入到该位置后; 重复步骤2~5。 public class Code01_Ins.原创 2021-03-27 11:48:17 · 370 阅读 · 0 评论 -
冒泡排序(bubbleSort)
里面两种循环差不多 public class Code01_BubbleSort { /** * 为什么是j<(length-1-i)呢? * -1就不解释了,主要是这个-i, * 因为i代表的是轮数,第一轮比较完毕之后都会有一个最大的数到顶端刚才上面解释过, * 那么第二轮比较的时候,那个最大的数就不要考虑进去继续比了,以此类推随着i的增长需要比较的数就会越来越少。 * @param arr */ public s原创 2021-03-27 11:25:37 · 107 阅读 · 0 评论 -
选择排序(seletorSort)
public class Code01_selectorSort { /** * 在算法实现时: * 每一轮确定最小元素的时候会通过不断地比较交换来使得首位置为当前最小,交换是个比较耗时的操作。 * 其实我们很容易发现,在还未完全确定当前最小元素之前,这些交换都是无意义的。 * * 因此可以通过设置一个变量min,每一次比较出存储较小元素,并且记录当前元素的数组下标, * 当本轮循环结束之后,那这个变量min存储的就是当前最小元素的下标,原创 2021-03-27 11:10:35 · 63 阅读 · 0 评论