算法篇
<我啥也不会啊>
这个作者很懒,什么都没留下…
展开
-
二分查找数组中指定数的个数 二分进阶
使用二分查找统计数组中与目标数相同的数的个数该算法思想是基于二分查找数基础上进行改进,目的是统计数组中有多少个数与目标数相等。注:当直接使用for循环去遍历数组,每次遍历都比对一次,时间复杂度将会是O(n)如果使用一次二分查找,首先找到一个与目标数相等数的下标后,使用while以这个下标为中心,向左或向右去比较。如果相同的数只有2个的话,那么向左向右搜寻一次就可以得出结果,但如果一个数组中的所有数都相同,那么还是需要比对n次,按这个思想查找的时间复杂度也是O(n)。这里我采用的思想是 先使用一次原创 2021-03-22 19:30:17 · 522 阅读 · 1 评论 -
二分查找一个数 java实现
使用二分查找算法查找一个有序数组中指定数的索引import java.util.Scanner;public class BinarySearch { static int i = 1; //这里自定义的i是为了方便下面输出每一步查找的下标、上标、中间数 ,无关紧要 可以不要 public static void main(String[] args) { int[] arr = {1,1,1,1, 5, 8, 8, 9, 25, 66, 90, 100,100};原创 2021-03-22 19:25:44 · 299 阅读 · 0 评论 -
快速排序 Java实现
使用快速排序,将一个无序数组按从小到大的顺序排序快速排序是一种高效的排序算法,其定义了一个基准数(通常选取数组的第一个数或者最后一个数),一般是从后向前搜索,如果当前数小于基准数,则将这个数移动到数组前面,保证在基准数的左边。然后再由前向后搜索,如果当前数大于基准数,则将这个数移动到数组后面,保证在基准数的右边。每进行一次排序,就会以基准数为标准将数组划分为2个部分,左边的比基准数小,右边的都比基准数大。然后在进行递归调用左子表和右子表,直到一个数组被划分到最小,即有序时 排序结束。时间复杂度最坏复原创 2021-03-22 19:16:57 · 240 阅读 · 0 评论