Java常见七种排序
奶糖芯
成功之前说什么都是借口,
成功之后说什么都是炫耀。
展开
-
常见的七种排序算法的性能比较
排序算法性能比较 1.时间复杂度为O(n 2 )的排序算法 冒泡排序 选择排序 插入排序 希尔排序 2. 快速排序 归并排序 堆排序原创 2021-01-17 23:06:46 · 436 阅读 · 0 评论 -
Java基础—归并排序,非递归快速排序
1.递归的快速排序优化 第一种优化思想: 1.首先快速排序对于大量数据比如以万为计量单位,那么快排的时间复杂度和空间复杂度都是相对于其他几个排序都是最好的,那么对于少量数据比如10个,100个,快速排序显然已经不是最好的了; 2.那么快速排序每次经过找基准,这样数据就在慢慢趋于有序,这个时候当low和high之间的数据小于一个给定的值的时候,比如100,我们就可以之间调用之间插入排序来进行排序; public static void quick(int[] arr,int low,int high){原创 2020-11-13 17:37:05 · 214 阅读 · 1 评论 -
Java基础—交换排序(冒泡排序,快速排序)
1.冒泡排序 原理:在无序区间,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序。 稳定性(稳定) 1.一个稳定的排序可以变成不稳定的排序; 2.一个本身就不稳定的是不可能变成稳定的; 空间复杂度:O(1) 时间复杂度:最好情况O(n);最坏情况O(n^2) //冒泡排序 public static void bubbleSort(int[] arr){ for (int i = 0;i < a原创 2020-11-12 17:25:38 · 973 阅读 · 3 评论 -
Java基础—选择排序(选择排序,堆排序)
1.选择排序 原理:每一次从无序区间选出最大(或最小)的一个元素,存放在无序区间的最后(或最前),直到全部待排序的数据元素排完 。 稳定性(不稳定) 1.一个稳定的排序可以变成不稳定的排序; 2.一个本身就不稳定的是不可能变成稳定的; 空间复杂度:O(1) 时间复杂度:O(O(n^2)) public static void selectsort(int[] arr){ for (int i =0;i < arr.length;i++原创 2020-11-12 17:12:15 · 223 阅读 · 2 评论 -
Java基础一插入排序(直接插入排序,希尔排序)
一.基本概念 1.概念: 排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序) 2.稳定性 两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算 法。 下面用一个简单图给大家说明一下:图中给的数据有俩个3,如果排序之后,黑3还在红3之后,那么这样的排序就是稳定的,否则就是不稳定的。 3.Java常见排序 二.具体排序代码实现 1.直接插入排序 稳定性(稳定原创 2020-11-12 16:57:24 · 118 阅读 · 0 评论