数据结构和基本算法
数据结构和基本算法
不会叫的狼
人类最大的进步就是学会共享!
展开
-
位操作及在算法的用途
先mark 后续整理https://www.jianshu.com/p/f9c5282acd8a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation原创 2021-04-25 00:38:46 · 108 阅读 · 0 评论 -
二分法查找
二分查找:要求数组元素有序。public static int serch(int[] arr, int num) { int start = 0; int end = arr.length; int mid = (start + end) / 2; while (start < mid) { if (num < arr[mid]) { end = mid; } else if (num > arr原创 2021-04-16 00:04:58 · 58 阅读 · 0 评论 -
哈希表
https://blog.csdn.net/sinat_33921105/article/details/103344078写的很详细 待整理原创 2021-04-15 19:08:36 · 102 阅读 · 0 评论 -
快速排序
算法思想它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。实现思路1、首先设定一个分界值,通过该分界值将数组分成左右两部分。2、将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。3、然后,左边和右边的数据可以独立排序。对于左侧的数.转载 2021-04-15 18:55:41 · 13888 阅读 · 1 评论 -
选择排序
public static void qsort(int[] arr, int start, int end){ int pvot = start; int left = start; int right = end; System.out.println("start="+start+",end="+end); if(left > right){ return; }原创 2021-04-15 01:08:47 · 185 阅读 · 0 评论 -
冒泡排序
算法思想比较两个相邻的元素,将值大的元素交换到右边。因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。实现思路1、首先比较第一和第二个数,将小数放在前面,将大数放在后面。2、比较第2和第3个数,将小数放在前面,大数放在后面。…3、依次从开始第一对到结尾的最后一对比较相邻的元素。如果第一个比第二个大,就交换他们两个。最后的元素应该会是最大的数。4、然后进行第二轮比较,在第二轮比较完成后,倒数第二个数也一定是数组中倒数第二大数,所以在第三趟的比较中,最后两个数是不参与比较的..原创 2021-04-15 00:53:32 · 552 阅读 · 0 评论