排序和查找
丑月十五
这个作者很懒,什么都没留下…
展开
-
二分查找、差值查找、斐波那契查找
二分法查找适用于大的数据,但前提条件是数据必须是有序的,他的原理是先和中间的比较,如果等于就直接返回,如果小于就在前半部分继续使用二分法进行查找,如果大于则在后半部分继续使用二分法进行查找。 代码: public class Search { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = new int[]{1,2,3,4,5,6,7,8,9}; System.ou原创 2021-08-10 11:04:09 · 162 阅读 · 0 评论 -
快速排序法
算法步骤: 1、找到一个支点pivot,随机选择。 2、从左右分别进行寻找,利用指针i和j 3、左边找比支点大的数,右边找比支点小的数,找到了,进行交换 4、然后对分段子数组分别寻找,用递归。 import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int arr[]={1,4,5,67,2,7,8,6,9,44}; System.out.println("原数组:原创 2021-08-07 17:39:59 · 67 阅读 · 0 评论 -
插入排序和希尔排序
插入排序 算法流程: 1、将一个具有n个元素的待排序数列分成两个子数列,一个有序和一个无序。 2、刚开始,我们将左边第一个元素看成一个有序数列,右边n-1个元素看成无序数列。 3、从右边无序数列中取出一个元素,在已排序数列中从后往前扫描(比较),找到相应的位置并插入,使插入后有序数列仍然有序。 4、重复第3步,直到完成整个排序过程。 import java.util.Arrays; public class InsertSort { public static void main(String[] a原创 2021-08-07 11:48:44 · 59 阅读 · 0 评论 -
冒泡排序法
冒泡排序法 算法步骤: 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 3、针对所有的元素重复以上的步骤,除了最后一个。 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { int[原创 2021-08-06 23:05:51 · 85 阅读 · 0 评论 -
选择排序法
选择排序法 算法步骤: 1、首先在未排序序列中找到最小元素,存放到排序序列的起始位置。 2、再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 3、重复第二步,直到所有元素均排序完毕。 (记忆:就是选个最小,放在那里,再选个第二小的,放在后面…) 代码一: 这种就是先假定第一个最小,然后跟后面的比较,小就交换,依次比较。用的是值比较。 import java.util.Arrays; public class SelectionSort { public static void m原创 2021-08-06 22:41:12 · 48 阅读 · 0 评论