![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序系列
文章平均质量分 57
aaronymhe
fighting
展开
-
排序算法之希尔排序
问题描述:输入一个原始数列,把它进行升序排序,从小到大输出。例如:给定数列如下: 5 15 99 45 12 1 90 19 33 41排序后的结果为: 1 5 12 15 19 33 41 45 90 99希尔排序,首先选定步长值,选定的方法一般是从数组个数n/2开始,依次往下除以2,直到步长减少到1为止,选好步长之后,我们在每个步长值上,进行插入排序,使得该步长范围的数列都是有序的,随着原创 2017-05-10 22:39:46 · 12524 阅读 · 0 评论 -
排序算法之快速排序
问题描述:输入一个原始数列,把它进行升序排序,从小到大输出。例如:给定数列如下: 5 15 99 45 12 1 90 19 33 41排序后的结果为: 1 5 12 15 19 33 41 45 90 99快速排序的基本思想是,找出一个分界的数num,把不大于num的数全部放在它左边,把不小于num的数全部放在它右边,然后对左右区间做相同的操作,直到各个区间都只有一个数位置,下面来看一下具原创 2017-05-10 23:50:33 · 12306 阅读 · 3 评论 -
排序算法之归并排序
问题描述:输入一个原始数列,把它进行升序排序,从小到大输出。例如:给定数列如下: 5 15 99 45 12 1 90 19 33 41排序后的结果为: 1 5 12 15 19 33 41 45 90 99归并排序是分之思想的典型应用,首先对N个元素进行排序是一个大的问题,我们把它对半拆分成左右两个部分,这样对N个元素排序的问题,就拆分成对【0,(N - 1)/2】和【(N - 1)/2+原创 2017-05-12 00:02:01 · 11593 阅读 · 0 评论 -
排序算法之选择排序
问题描述:输入一个原始数列,把它进行升序排序,从小到大输出。例如:给定数列如下: 5 15 99 45 12 1 90 19 33 41排序后的结果为: 1 5 12 15 19 33 41 45 90 99选择排序,就是第一步从所有的数据中选出最小的数放在第一个位置,然后从剩下的数中选出最小的放在第二个位置,以此类推,就能从小到大排好所有的数,下面来看一个具体的过程:下标值序号: 0 1原创 2017-05-09 00:25:02 · 12471 阅读 · 0 评论 -
排序算法之冒泡排序
问题描述:输入一个原始数列,把它进行升序排序,从小到大输出。例如:给定数列如下: 5 15 99 45 12 1 90 19 33 41排序后的结果为: 1 5 12 15 19 33 41 45 90 99冒泡排序顾名思义,就是让小的数一个一个的冒到上面来(最上面就是我们数组下标0),那么具体的做法是,从后往前两两进行比较,让两者中较小往上升,大家看一下下面这个过程:下标值:原创 2017-05-08 22:25:08 · 12313 阅读 · 0 评论 -
排序算法之插入排序
问题描述:输入一个原始数列,把它进行升序排序,从小到大输出。例如:给定数列如下: 5 15 99 45 12 1 90 19 33 41排序后的结果为: 1 5 12 15 19 33 41 45 90 99插入排序,就是从第二个数开始(因为第一个数肯定是排好了的),如果比前面的数大,那就什么都不用做,因为已经有序了,如果比前面的小,往前面进行查找,寻找合适的位置进行插入,每个数都进行这样的原创 2017-05-09 23:31:21 · 16754 阅读 · 0 评论 -
排序算法之堆排序
问题描述:输入一个原始数列,把它进行升序排序,从小到大输出。例如:给定数列如下: 5 15 99 45 12 1 90 19 33 41排序后的结果为: 1 5 12 15 19 33 41 45 90 99堆排序的基本思想是,建立一棵完全二叉树,不断调整这棵二叉树,保持这棵二叉树一直是一个大顶堆。参考代码:#include <stdio.h>int arr[100], n;void Adj原创 2017-06-07 22:58:54 · 10560 阅读 · 0 评论