
Java编程00:查找排序
Java基本的两种查找算法和八种排序算法
云魄
这个作者很懒,什么都没留下…
展开
-
Java中两种基本的查找算法之二分查找
第二种查找算法:二分查找: /** * 2. 二分查找(折半查找) * 基本思想: * 在有序数组中,取中间数值作为比较对象,若给定值与中间数值相等,则查找成功; * 若给定值小于中间数值,则在中间数值的左半区继续查找; * 若给定值大于中间数值,则在中间数值的右半区继续查找。 * 不断重复上述过程,直到查找成功,或所查找的区域无记录,查找失败。 * *...原创 2018-08-17 23:03:53 · 265 阅读 · 0 评论 -
Java中两种基本的查找算法之顺序查找
Java中两种基本的查找算法Java中两种基本的查找算法:顺序查找和二分查找(折半查找)。 第一种查找算法:顺序查找: /** * 1. 顺序查找 * 基本思想: * 从数组的一端向另一端逐个将元素与给定值进行比较, * 若相等,则查找成功,给出该元素在表中的位置; * 若整个表检测完仍未找到与给定值相等的元素,则...原创 2018-08-17 23:03:41 · 1531 阅读 · 0 评论 -
Java查找算法和排序算法综合实现
/** * 查找算法和排序算法综合实现 * 查找算法:顺序查找()和折半查找()(二分查找) * 排序算法: * 交换排序:冒泡排序(),快速排序() * 插入排序:直接插入排序(*),希尔排序 * 选择排序:简单选择排序(),堆排序() * 归并排序:归并排序(*) * 分配排序:箱排序,基数排序 */import java.util.Arrays;im...原创 2018-08-17 23:01:59 · 584 阅读 · 0 评论 -
Java中八种基本的排序算法之基数排序
第八种排序算法:基数排序/** * 基数排序: * 基本思想: * 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。 * 然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, * 数列就变成一个有序序列。 * * 时间复杂度:O(d(r+n)) (r代表关键字的基数,d代表长度,n代表关键字的个数) *...原创 2018-08-17 23:01:51 · 184 阅读 · 0 评论 -
Java中八种基本的排序算法之希尔排序
第七种排序算法:希尔排序/** * 插入排序 * 希尔排序: * 基本思想:(分组再排序) * 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。 * 希尔排序是基于插入排序的以下两点性质而提出改进方法的: * 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率; * 但插入排序一般来说是低效的,因为插入排序每次只能将...原创 2018-08-17 23:01:43 · 204 阅读 · 0 评论 -
Java中八种基本的排序算法之堆排序
第六种排序算法:堆排序/** * 选择排序 * 堆排序: * 基本思想:(建堆再调整堆)(大根堆,小根堆,堆是完全二叉树) * 堆排序是一种树形选择排序,是对直接选择排序的有效改进。 * 堆的定义如下:具有n个元素的序列(h1,h2,…,hn), * 当且仅当满足(hi>=h2i,hi>=2i+1)或(hi<=h2i,hi&am原创 2018-08-17 23:01:36 · 169 阅读 · 0 评论 -
Java中八种基本的排序算法之归并排序
第五种排序算法:归并排序/** * 归并排序: * 基本思想: * 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表, * 即把待排序序列分为若干个子序列,每个子序列是有序的。 * 然后再把有序子序列合并为整体有序序列。 * * 时间复杂度:O(nlog2 n) * 空间复杂度:O(n) * * 稳定性:稳定 *...原创 2018-08-17 23:01:27 · 168 阅读 · 0 评论 -
Java中八种基本的排序算法之快速排序
第四种排序算法:快速排序/** * 交换排序 * 快速排序: * 基本思想: * 选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描, * 将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素, * 此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分, * 直到整个待排序列排好序为止。 * * ...原创 2018-08-17 23:01:21 · 247 阅读 · 0 评论 -
Java中八种基本的排序算法之简单选择排序
第三种排序算法:简单选择排序/** * 选择排序 * 简单选择排序: * 基本思想: * 在要排序的一组数中,选出最小的一个数与第一个位置的数交换; * 然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个 * 数和最后一个数比较为止。 * * 时间复杂度:O(n2) * 空间复杂度:O(1) * * 稳定性:不稳定 ...原创 2018-08-17 23:01:10 · 206 阅读 · 0 评论 -
Java中八种基本的排序算法之直接插入排序
第二种排序算法:直接插入排序/** * 插入排序 * 直接插入排序: * 基本思想: * 在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 * 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数 * 也是排好顺序的。如此反复循环,直到全部排好顺序。 * * 直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值...原创 2018-08-17 23:01:01 · 3521 阅读 · 0 评论 -
Java中八种基本的排序算法之冒泡排序
Java中八种基本的排序算法: /** * 排序算法: * 1.插入排序(直接插入排序、希尔排序) * 2.交换排序(冒泡排序、快速排序) * 3.选择排序(直接选择排序、堆排序) * 4.归并排序 * 5.分配排序(基数排序、箱排序) * * 所需辅助空间最多:归并排序 * ...原创 2018-08-17 23:00:50 · 292 阅读 · 0 评论