博主头像
7024w的自留地

觉宇宙之无穷,识盈虚之有数

全排列递归算法

public static void perm(int[] buf, int start, int end) { int temp; if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可 for (int i = 0; i <= end; i++) { System.out.print

<算法很美> 部分习题

1.升序数组中寻找两数相加等于K我使用的是双指针的方法,时间复杂度为o(n)老师讲还可以通过二分法来查找(比如从第一个开始,K-arr[0],二分法寻找数组中是否存在符合条件的数)//升序数组,找到两数之和等于K public static int[][] findTwoNumbers(int[] arr,int k){ int length = arr.length; int[]

快排之单项扫描法

实际上就是利用递归、分治的思想将该数组不断进行划分排序。每一次划分,都保证pivot左边都是小于它的数,右边都是大于它的数。这样不断递归,确定每个位置上的pivot都符合要求,即可得到最终的结果。static int[] QuickSort(int[] arr, int p, int r){ if(p<r){ int q = partition(arr,p,r);