java算法
zzuhai
这个作者很懒,什么都没留下…
展开
-
快速排序
快速排序的原理: 选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的), 比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。 一次循环: 从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有 继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后,又从前往后开始比 较,如果有比基准值大的,交换位置,如果没有继续比较下一个,直到找到第一个...原创 2019-07-29 15:08:29 · 167 阅读 · 0 评论 -
插入排序
原理: 从第二个数开始(i=1)循环作为插入的数,和前一个数(index=i-1)进行比较,如果前一个数小于插入的数,则插入数插入index+1位置,如果前一个数大于插入的数,给index+1位置赋值上index位置的数,index–,来循环比较前面的数,直到前一个数(index)小于插入的数,插入数插入index+1位置 代码 public void insertSort(int arr[]) ...原创 2019-07-29 15:38:34 · 106 阅读 · 0 评论 -
没有bug的二分查找
今天看了几篇关于二分查找的文章 知道了很多坑,在此记录一下,具体分析下次再来补充上 以下是正确的代码 public static int binarySearch(int arr[],int value){ int l = 0,r = arr.length; while(l<=r){ int mid = l+(r-l)/2; if(arr[mi...原创 2019-04-01 23:25:50 · 187 阅读 · 0 评论 -
冒泡排序
原理 (1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。 (2)这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第 N-1 个位置。 (3)N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成。 代码 public static void bubbleSort(int[] a) { int i, j; for (i =...原创 2019-07-29 16:08:58 · 108 阅读 · 0 评论