
二分算法
。
涛涛涛不淘
这个作者很懒,什么都没留下…
展开
-
根据伪代码编程实现随机位置次序选择算法。
根据伪代码编程实现随机位置次序选择算法。import java.util.Random;public class randomizedSelection { public static void main(String[] args){ int[] A = {9,8,7,6,5,4,3,2,1}; //下面中randomizedSelection(A, 0, A.length-1, 5)里的第四个参数,代表的是寻找该数组中排序后的第几个元素。所以,第四个参原创 2021-04-22 23:43:41 · 924 阅读 · 0 评论 -
根据伪代码编程实现随机化的快速排序算法,并测试其正确性。
根据伪代码编程实现随机化的快速排序算法,并测试其正确性。import java.util.Random;public class QuickSort { public static void main(String[] args) { int[] A = {9,8,7,6,5,4,3,2,1 }; quickSort(A, 0, A.length - 1); for (int i : A) { System.out.pr原创 2021-04-22 23:36:45 · 808 阅读 · 0 评论 -
在归并排序算法的基础上改写代码,实现逆序对计数问题的算法java实现和Python实现
在归并排序算法的基础上改写代码,实现逆序对计数问题的算法,并测试其正确性,只需要输出逆序对的数量即可public class MergeSort { public int reversePairs(int[] nums) { int len = nums.length; if (len < 2) { return 0; } int[] copy = new int[len]; for原创 2021-04-12 23:46:57 · 409 阅读 · 1 评论 -
分治算法--实现最大子数组问题--(java实现)
根据下面伪代码实现最大子数组问题的算法,并测试其正确性,要求输出最大子数组的起始位置和求和的值。public class maxSubArray { public static void main(String[] args) { int[] a = {0,1,-1,-2,2,3}; MaxSubArr(a); System.out.println("最大子数组和为:"+max); } private static int ma原创 2021-04-01 23:30:24 · 642 阅读 · 2 评论 -
分而治之单元测试1答案以及讲解
1 在归并排序算法中,若每次分解将长度为n的数组分为两段,长度分别为n-1和1,此时归并算法的时间复杂度为()A.O(n^2)B.O(n)C.O(nlogn)D.O(1)选A解析:数组中一共n个数,每次分出一个,一共分了n次,所以一共运行了n*n次,所以复杂度为O(n^2)。2.在归并排序算法中,若每次分解将长度为 n 的数组分为四段长度为 n/4 的子数组进行递归,此时归并排序算法的时间复杂度为( )A.O(n^2)B.O(n^4)C.O(nlogn)D.O(n)选C解析:数组中原创 2021-03-27 14:45:24 · 5969 阅读 · 8 评论 -
根据归并排序算法的伪代码,实现完整的归并排序算法,并编写测试类测试其正确性。
根据归并排序算法的伪代码,实现完整的归并排序算法,并编写测试类测试其正确性。粗略地看,伪代码中写了两个方法,其中MergeSort()方法是将数组中的n个元素分割成n个数组。Merge()方法是将分割好的数组进行比较并有序地合并。代码如下: public static void main(String[] args) { int[] A = new int[] { 9,8,7,6,5,4,3,2,1}; int left = 0; int rig原创 2021-03-26 00:03:02 · 3216 阅读 · 4 评论 -
改写二分搜索算法
设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素位置i和大于x的最大元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。下面是将要被改写的二分搜索算法 public static int binarySearch1(int []a,int x,int n){ int left = 0;int right = n-1; while(left<=right){ int mid原创 2021-03-18 12:26:27 · 1069 阅读 · 3 评论 -
《算法设计与分析(第4版)》课后习题第二章第2小题
《算法设计与分析(第4版)》课后习题第二章第2小题下面的7个算法与本章中的二分搜索算法binarySearch略有不同。请判断这7个算法的正确性,并说明原因和证明。第二章二分搜索算法binarySearch代码如下: public static int binarySearch1(int []a,int x,int n){ int left = 0;int right = n-1; while(left<=right){ int middle原创 2021-03-18 00:36:59 · 3066 阅读 · 2 评论