Java 二分查找与优化思路
二分查找是一种高效的查找方法。其主要思路是:对已经排序的数据,每次取二分之一处的元素与目标元素比较,如果相等就返回目标位置,否则继续下一轮查找。 二分思想 二分查找文字描述: 排好序的数组 arr 定义左边界 left、右边界 right,...
二分查找是一种高效的查找方法。其主要思路是:对已经排序的数据,每次取二分之一处的元素与目标元素比较,如果相等就返回目标位置,否则继续下一轮查找。 二分思想 二分查找文字描述: 排好序的数组 arr 定义左边界 left、右边界 right,...
快速排序思想 每一轮遍历选择一个基准点(pivot)进行分区。 小于基准点的元素进入一个分区,大于基准点的元素进入另一个分区。 当分区完成时,基准点的位置就是排序后该元素应该处于的位置。 在每个子分区中重复以上过程,直到分区中元素少于等于 ...
插入排序思想 将数组分为两个部分,排序部分和未排序部分。 每一轮遍历从未排序部分取出第一个元素,插入到排序部分的对应位置。 重复以上过程,直到整个数组有序。 代码实现 为了能更好地展示冒泡排序的主要思想,我将数据准备工作定义在 main()...
选择排序是一种经典的排序算法。 选择排序思想 将数组分为两个子集,前一个子集是排序的,后一个子集是未排序的。 每一轮遍历从未排序的子集中选择最小的元素放入排序子集的末端。 重复以上过程,直到整个数组有序。 经典实现 为了能更好地展示冒泡排序...
冒泡排序是最经典的排序算法之一,其主要思路是两两比较相邻位置的元素,并交换其位置,直到结束。 排序存在两种场景:升序和降序,这里仅讨论升序的情况。 冒泡思想 冒泡排序文字描述: 依次比较数组中响铃两个元素的大小,若前一个大于后一个,则交换两...