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