赞
踩
排序:就是将一组杂乱无章的数据按照一定的规律组织起来。
按照大类分为稳定排序和不稳定排序。稳定排序就是指两个大小相同的顺序在排序之后顺序不变,而不稳定排序那就不一定了。
快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法。
详细图解如下:
//在这里:N(log2N)是指log以2为底N的对数
稳定排序的适用条件:1.本来就有序 2.数组比较短
在这篇博客中会详细讲到七种排序算法,具体的过程在代码中以注释的形式体现:
1.冒泡排序:
两层循环,相邻元素进行比较
- void BubbleSort(int array[], int size){
- if (size <= 1){//首先判断长度
- return;
- }
- //循环套循环,大循环遍历乱序的数组,小循环在里面进行交换。
- //有序区间逐渐变长,无序区间逐渐变短。
- int bound = 0;
- //[0,bound)当前的有序区间 [bound,size)乱序排序
- for (; bound < size; ++bound){
- //循环的目的就是找到一个最小的数字
- int cur = size - 1;
- for (; cur>bound; --cur){
- if (array[cur] < array[cur - 1])
- //提前定义好交换
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。