![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
ldd儆儆
这个作者很懒,什么都没留下…
展开
-
冒泡排序和优化
冒泡排序算法原理:(从小到大排序) 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,交换一趟后,最后的元素会是最大的数 3.针对所有的元素重复以上的步骤,除了最后一个 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 源码 public static void search2(int[] nums) { int[] list = {2,1,3,6,5}; in原创 2022-01-03 10:26:05 · 778 阅读 · 0 评论 -
选择排序
标题 以此类推,得到正确的排列顺序 代码 对于整形的排序 private int [] a; public void selectSort1(int [] a){ for (int i = 0; i <a.length ; i++) { int minIndex = i; for (int j = i+1...原创 2019-04-04 11:16:55 · 127 阅读 · 0 评论 -
插入排序
前言 上次写的博客是关于选择排序的。对于选择排序,我们都知道,无论树是否有序,都会进行二次循环,那么它的时间复杂度是比较高的。 今天所要说的插入排序,相当于是对选择排序的一种优化。 对于相对有序的树进行排序,插入排序更会有优势,但是别忘了,对于规模更大的树来说,插入排序并不是一个更好的选择,原因在于它的时间复杂度仍然为O(n) 步骤讲解 代码实现 package insertort; pub...原创 2019-04-04 12:01:07 · 112 阅读 · 0 评论 -
归并排序
前言 归并排序非常再现了“分而治之”的算法思想。 归并排序的产生除了“分而治之”,其实还有递归的思想。我们不妨把归并排序的过长看成是一个树,那么他的深度为logn ,这也为什么他的时间复杂度为什么是nlogn级别的。 图解步骤: ...原创 2019-04-05 11:51:05 · 118 阅读 · 0 评论 -
快速排序
前言 1.有人说,快速排序是20世纪对世界影响伟大的算法之一。 那么今天那么来看看他的思想。 一 如图所示,要对数组中的 4 ,1 ,5 ,2 ,6 进行排序, 快速排序步骤: 1.令第一个元素 为v 2.通过v将数组分成2部分 ,前一部分均为<v ,后一部分均>v 这个过程称为partition 代码实现: private int partition(int[] a, ...原创 2019-04-08 17:58:35 · 136 阅读 · 0 评论