数据结构与算法
m0_60305747
这个作者很懒,什么都没留下…
展开
-
堆排序算法
一基础概念 堆的结构可以分为大根堆和小根堆,是一个完全二叉树,而堆排序是根据堆的这种数据结构设计的一种排序,下面先来看看什么是大根堆和小根堆 1.1 大根堆和小根堆 性质:每个结点的值都大于其左孩子和右孩子结点的值,称之为大根堆;每个结点的值都小于其左孩子和右孩子结点的值,称之为小根堆。如下图 1.2条件 父结点索引:(index- 1) / 2 左孩子索引:2 *index+ 1 右孩子索引:...原创 2021-08-29 21:33:47 · 67 阅读 · 0 评论 -
归并排序(java)
归并排序 1、概念 归并排序是一种基于分治法,将待排序的元素序列分成两个长度相等的子序列,为每一个子序列排序,然后再将他们合并成一个子序列。合并两个子序列的过程也就是两路归并。 public static void main(String[] args) { int[] a = { 9, 25, 54, 87, 7, 19, 68, 51, 49 }; System.out.println("原始数据:"); for...原创 2021-08-14 16:04:55 · 74 阅读 · 0 评论 -
快速排序-QuickSort
1、快速排序思想 快速排序的核心是分割,确定一个用作分割的基准数字,将原数组分割成两个部分,左边的比基准数字小,右边的比基准数字大。然后递归迭代,分别将左部和右部的两个部分进行快速排序,知道整个数组有序。 2、时间复杂度 平均时间复杂度为O(N*logN)数组无序时表现较为好;最坏时间复杂度为O(N^2)数组有序且为逆序的时候最坏 3、代码实现 public class test2 { public static void main(String[] args) { ..原创 2021-08-14 23:56:57 · 81 阅读 · 0 评论