
排序
patient&training
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构——选择排序(堆排序,简单选择排序java)
一.堆排序 1.前言: 如果读者是个数据结构小白,建议读者先看看数据的二叉树,然后再看完全二叉树和二叉堆,再来看堆排序就能很好的理解了。 2.堆排序算法介绍 堆是一种重要的数据结构,为一棵完全二叉树, 底层如果用数组存储数据的话,假设某个元素为序号为i(Java数组从0开始,i为0到n-1),如果它有左子树,那么左子树的位置是2i+1,如果有右子树,右子树的位置是2i+2,如果有父节点,父...原创 2018-10-02 11:56:49 · 286 阅读 · 0 评论 -
数据结构——插入排序(直接插入排序,希尔排序java)
一.直接插入排序: 1、基本思想 直接插入排序的基本操作是将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表。对于给定的一组记录,初始时假定第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直到最后一个记录插到有序序列中为止。 2、复杂度分析 当最好的情况,也就是要排序的表本身就是有序的,...原创 2018-10-01 20:27:06 · 523 阅读 · 0 评论 -
数据结构——归并排序(java)
1.算法思想 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将数组分成二组A,B,如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序。如何让这二组组内数据有序了? 可以将A,B组各自再分成二组。依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个...原创 2018-10-02 17:45:24 · 234 阅读 · 0 评论 -
数据结构——交换排序(冒泡排序,快速排序java)
一.冒泡排序 1.原理:比较两个相邻的元素,将值大的元素交换至右端。 依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。 2.时间复杂度 1.如果我们的数据正序,只需要走一趟即可完成排序。所需的...原创 2018-10-02 18:42:40 · 289 阅读 · 0 评论