![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 79
csdn_lihe
这个作者很懒,什么都没留下…
展开
-
常用排序算法之冒泡排序
原理:将数组分为有序区和无序区,通过不断的对无序区中相邻的两个元素进行从大到小或从小到大的顺序进行交换,进而将最大或最小的元素移动到有序区中,直到倒数第2位时结束整个排序过程。要点:对相邻的两个元素进行顺序交换,从而将无序区中的最大或最小值移动到有序区中。讲解:设数组为array[0...n-1].1. 初始时,设置i=0(或i=n-1),对array[n-1...0](或原创 2015-06-28 22:47:10 · 543 阅读 · 0 评论 -
常用排序算法之简单选择排序
原理:将数据分为有序区和无序区,从无序区中选择最小(或最大)的元素与有序区中的元素进行交换,循环直到整个排序结束。讲解:设数组为array[0...n-1].1. 初始时有序区为array[i=0],i = 0 ... n-2 ,设定数组最小值的小标为minIdx = i ,从j=i+1...n-1中一个个与array[i]进行比较,如果array[j] 2. 如果i != m原创 2015-07-02 00:31:36 · 506 阅读 · 0 评论 -
常用排序算法之堆排序
原理:从数组中选取一个元素作为基准(通常取第一个元素),然后将小于等于该元素的值移动到该元素的左边,大于该元素的值移到该元素的右边,然后循环对左右两边的元素进行相同的操作,知道每个分组的元素个数都为1。要点:如何将小于等于基准数的元素移到基准的左边,如何将大于基准数的元素移到基准的右边,如何控制循环的结束。讲解:设数组为array[0...n-1].1. 初始时基准数piv原创 2015-07-03 00:26:39 · 444 阅读 · 0 评论 -
常用排序算法之希尔排序法
原理:又称增量缩小排序。先将序列按增量划分为元素个数相同的若干组,使用直接插入排序法进行排序,然后不断缩小增量直至为1,最后使用直接插入排序完成排序。要点:增量的选择以及排序最终以1为增量进行排序结束。原理:又称为增量缩小排序。将待排序的数组按增量n划分成n组(把它们当成一组,但不实际分组,只是当成一组来看,只是为了说明分组关系),每组元素的下标相隔n,使用插入排序法对每一原创 2015-06-28 18:30:17 · 1838 阅读 · 0 评论 -
常用排序算法之插入排序法
原理:将数组分为有序区和无序区,然后循环将无序区中的元素与有序区中的元素进行比较插入到有序区中,最终将无序区中的元素都移动到有序区中,整个排序过程结束。要点:设置哨兵i,作为有序区与无序区的分解。讲解:设数组为array[0...n-1].1. 初始时,array[0]自称有序区,无序区为array[1...n-1],令i = 1 ;2. 将array[i]与有序区ar原创 2015-06-28 17:16:18 · 531 阅读 · 0 评论 -
常用排序算法之快速排序算法
原理:从数组中选取一个元素作为基准(通常取第一个元素),然后将小于等于该元素的值移动到该元素的左边,大于该元素的值移到该元素的右边,然后循环对左右两边的元素进行相同的操作,知道每个分组的元素个数都为1。要点:如何将小于等于基准数的元素移到基准的左边,如何将大于基准数的元素移到基准的右边,如何控制循环的结束。讲解:设数组为array[0...n-1].1. 初始时基准数piv原创 2015-06-29 23:58:56 · 687 阅读 · 0 评论