- 博客(4)
- 收藏
- 关注
原创 2021-08-28
学习目标:堆排序扩展题目已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k, 并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数组进行排序。public static void sortedArrDistanceLessK(int[] arr,int k) { PriorityQueue<Integer> heap=new PriorityQueue<>();//提供的小根堆,每次默认弹出的是最小的数 int
2021-09-04 14:57:30
359
原创 java快速排序算法
学习目标:快速排序算法荷兰国旗问题:问题一:给定一个数组arr,和一个数num,请把小于num的数放在num左边,大于num的数放在num右边,要求额外空间复杂度为o(1),时间复杂度为o(n)问题二:给定一个数组arr,和一个数num,请把小于num的数放在num左边,等于num的数放中间,大于num的数放在num右边,要求额外空间复杂度为o(1),时间复杂度为o(n)学习内容:快排思想:利用荷兰国旗问题二原理,随机在数组中选取一个数num,将其与最右侧R=arr.length-1位置上的数值交
2021-08-28 17:52:07
166
原创 java归并排序
学习算法:归并排序:1)整体是一个简单递归,左边排好序,右边排好序,让其整体有序。2)时间复杂度 o(N*logN),额外空间复杂度o(N)学习产出:public class mergeSort {public static void mergeSort(int[] arr) { if (arr==null||arr.length<2){ return; } process(arr,0,arr.length-1);}
2021-08-28 16:44:06
238
原创 java异或运算符
异或运算符“^” 是异或运算符,异或的规则是转换成二进制比较,相同为0,不同为1.异或运算符可认为是无进位的二进制相加,如:6^7如6二进制为:0000 0110如7二进制为:0000 0111则6^7=1异或运算符性质(1)0^N=N; N^N=0(2)满足交换律及结合律简单的算法题(1)如果一个数组中只有一个数出现了奇数次,剩下的数都出现了偶数次,求这个出现了奇数次的数。public static void getData(int[] arr) { int
2021-08-23 15:10:32
7533
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人