Java的集合其实就是各种基本的数据结构(栈,队列,hash表等),基于业务需求进而演变出的Java特有的数据结构(因为不仅仅是基本数据结构),这篇文章主要给大家介绍了关于Java集合和数据结构排序的相关资料,需要的朋友可以参考下
目录
概念
插入排序
直接插入排序
代码实现
性能分析
希尔排序
代码实现
性能分析
选择排序
直接选择排序
代码实现
性能分析
堆排序
代码实现
性能分析
交换排序
冒泡排序
代码实现
性能分析
快速排序
代码实现
性能分析
非递归实现快速排序
代码实现
性能分析
归并排序
归并排序
代码实现
性能分析
非递归实现归并排序
代码实现
性能分析
海量数据的排序问题
总结
概念
排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
平时的上下文中,如果提到排序,通常指的是排升序(非降序)。
通常意义上的排序,都是指的原地排序(in place sort)。
稳定性: 两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。
插入排序
直接插入排序
整个区间被分为
有序区间
无序区间
每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入
代码实现
逻辑代码:
public class InsertSort { public static void insertSort(int[] array) { for (int i = 1; i = 0; j--) { if (array[j] > temp) { array[j+1] = array[j]; }else { break; } } array[j+1] = temp; } } }
调试代码:
public class TestDemo { public static void main(String[] args) { int[] array = {10,3,2,7,19,78,65,127}; System.out.println("排序前:" + Arrays.toString(array)); InsertSort.insertSort(array); System.out.println("排序后:" + Arrays.toString(array)); } }
该代码的执行结果为:
可见,实现了对原数组的升序排序。
性能分析
时间复杂度:
最好情况:O(n)【数据有序】
平均情况:O(n2)
最坏情况:O(n2)【数据逆序】
空间复杂度:O(1)
稳定性:稳定
对于直接插入排序:越有序越快。另外,直接插入排序会用在一些排序的优化上。
希尔排序
希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当到达=1时, 所有记录在统一组内排好序。
希尔排序是对直接插入排序的优化。
当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。
上一篇:java实现仿windows 字体设置选项卡实例下一篇:Java泛型定义与用法入门示例 热门搜索:
java数据结构
集合排序
理解数据结构
结构体排序
结构数据
相关文章
Java集合和数据结构排序实例详解
2021-09-10阅读(7162)评论(0)推荐()Java的集合其实就是各种基本的数据结构(栈,队列,hash表等),基于业务需求进而演变出的Java特有的数据结构(因为不仅仅是基本数据结构),这篇文章主要给大...
java数据结构排序算法之归并排序详解
2021-09-19阅读(7795)评论(0)推荐()这篇文章主要介绍了java数据结构排序算法之归并排序,结合具体实例形式详细分析了归并排序的原理、实现技巧与相关注意事项,需要的朋友可以参考下
java数据结构排序算法之树形选择排序详解
2021-09-18阅读(5553)评论(0)推荐()这篇文章主要介绍了java数据结构排序算法之树形选择排序,结合具体实例形式分析了java树形选择排序的原理、实现技巧与相关注意事项,需要的朋友可以参考下
Java中集合和数组的排序方式小结
2021-09-18阅读(5747)评论(0)推荐()这篇文章主要介绍了Java中集合和数组的排序方式小结,本文讲解了对数字数组、字符数组排序以及集合序列的排序,需要的朋友可以参考下
java数据结构与算法之冒泡排序详解
2021-11-14阅读(4034)评论(0)推荐()这篇文章主要介绍了java数据结构与算法之冒泡排序,结合实例形式详细分析了java冒泡排序的原理、实现技巧与相关注意事项,需要的朋友可以参考下
详解Java集合中的基本数据结构
2021-10-07阅读(6950)评论(0)推荐()总有小伙伴让我总结一下Java集合中的基本数据结构的相关知识,今天特地整理了本篇文章,文中有非常详细的介绍,需要的朋友可以参考下
java数据结构与算法之桶排序实现方法详解
2021-09-18阅读(5687)评论(0)推荐()这篇文章主要介绍了java数据结构与算法之桶排序实现方法,结合具体实例形式详细分析了桶排序的概念、原理、实现方法与相关操作技巧,需要的朋友可以参考下
取消
有人回复时邮件通知我
提交评论
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。