三种基本排序算法-冒泡排序,选择排序,插入排序
来源:互联网 发布:中央营业税收入数据 编辑:程序博客网 时间:2024/05/24 03:37
在实际应用开发中,我们经常需要用到排序算法进行数据的排序,而冒泡排序,选择排序,插入排序这三种排序算法则是比较容易理解并上手的算法。
冒泡排序基本思想:依次比较相邻的两个数,将小数放在前面,大数放在后面。
冒泡排序算法代码及注释如下:
void BubbleSort(int src[], int len)//冒泡排序函数接口,src为输入数组,len为数组长度{int i, j;bool flag = true;//定义标识符,表示是否有数据交换for (i = 0; i < len && flag==true; i++)//当有数据交换且数组还没遍历完的时候进行遍历{flag = false;//将标识符置为false,表示如果后续元素没有交换,则不再进行遍历 /*len-2表示倒数第二个元素*/for (j = len-2; j >= i; j--)//从最后元素往回遍历比较,在这里因为数组长度为len,元素下标为0~len-1,所以我写成了len-2{if (src[j] > src[j+1])//在这里表示当前元素与后一个元素比较,如果后一个元素比较小,则交换位置{swap(src[j], src[j+1]);flag = true;//表示有数据交换,所以继续遍历比较,将flag置为true}}}}
选择排序基本思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
选择排序算法代码及注释如下:
void SelectSort(int src[], int len)//选择排序函数接口,src为输入数组,len为数组长度{int i,j,min;for (i = 0; i < len; i++){min = i;//将需要交换元素的位置置为当前下标for (j = i + 1; j < len; j++)//向后遍历选出数组后续元素中最小的元素,并将其下标赋给min{if (src[j] < src[min])min = j;}if (i != min)//进行下标判断,避免多余的交换{swap(src[i], src[min]);}}}
插入排序基本思想:将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。
插入排序算法代码及注释如下:
void InsertSort(int src[], int len)//插入排序函数接口,src为输入数组,len为数组长度{int i, j, temp;for (i = 1; i < len; i++)//从第2个元素开始遍历{if (src[i] < src[i - 1])//如果后一个元素比前一个元素小,则进行插入操作{temp = src[i];//先把当前元素存放在临时变量里for (j = i - 1; src[j] > temp; j--)//然后逐步向前比较,将比当前元素小的值后移{src[j + 1] = src[j];}src[j + 1] = temp;//完成插入}}}
0 0
- 面试最基本的三种排序算法 冒泡排序 插入排序 选择排序
- 三种基本排序算法-冒泡排序,选择排序,插入排序
- 基本排序算法(冒泡排序,选择排序,插入排序)
- 三种基本排序(冒泡,选择,插入)
- 三种基本的排序算法:选择,插入,冒泡
- 【算法】插入排序/冒泡排序/选择排序
- 《算法》选择排序、插入排序、冒泡排序
- 三种基本排序-冒泡排序、直接插入排序、选择排序
- 三种基本排序-冒泡排序、直接插入排序、选择排序
- 排序-基本排序-选择排序,插入排序,冒泡排序
- 几种基本的排序算法:选择排序、插入排序、冒泡排序
- 【算法基础】冒泡、选择、插入排序(三种基本排序)
- 三大基本排序:选择、冒泡、插入
- 三大基本排序冒泡、插入、选择
- 三大基本排序--选择、冒泡、插入
- 三种排序算法python源码——冒泡排序、插入排序、选择排序
- 算法-基本排序:冒泡、选择、插入
- 基本排序算法(冒泡、选择、插入)
- 贝叶斯分析——从数值积分到MCMC
- qt线程(转)----这篇很专业!
- 阿里云ECS服务器的使用
- Java笔记——IO流分类
- StringBuffter类
- 三种基本排序算法-冒泡排序,选择排序,插入排序
- 定时发送MySQL的TOP 10慢查询SQL
- js的instanceof 运算符vs typeof 运算符
- 无主之地1(南阳oj845)
- PG执行计划
- 阅读我们的学科——计算机专业学习浅谈
- 书籍清单
- 鱼眼索引控件详解之二 —— 快速索引实现
- 分布式事物-2PC(Two-Phase Commit)