![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
ai你曾来过
这个作者很懒,什么都没留下…
展开
-
十大排序算法(一)选择排序
选择排序是排序里面最简单,最容易想到的排序; 算法: 在数组中,第一遍找到最小的元素,放在开始; 第二遍,找到剩下元素最小的放在第二个位置; 每一次找到元素最小的位置放在相应的位置; 核心代码: 设置flag记录最小元素的位置;然后交换; 时间复杂度分析: 最好O(n*2),平均O(n*2),最坏O(n*2); 代码: #include "iostream" using n...原创 2019-09-19 21:06:43 · 107 阅读 · 0 评论 -
十大排序算法(二)插入排序
前言:插入排序也叫"插牌法"排序; 算法: 1tmp记录第n个元素,并将第n个元素设为空位;(n>1) 2依次用前n个元素 ,和tmp比较;如果tmp比他们小,将他插入此位置,此时空位前移,再重复循环之至比到第一个位置; 核心代码: k标记位置;tmp保存元素;a[j+1]=a[j];元素前移; 时间复杂度: 最好O(n),平均 O(n^2),最坏O(n^2); #i...原创 2019-09-19 21:39:24 · 75 阅读 · 0 评论 -
十大排序算法(三)冒泡排序及其三种优化
前言:冒泡排序是c语言中学的最早的排序, 其核心是两个元素之间进行比较,找出较大(小),一轮下来找出最大(小); 1核心算法:(升序) 内循环中相邻两个元素比较, 交换出较大的元素; 每一次循环找出最大的元素; 2代码核心: 外循环 需要n-1次比较; 内循环需要n-1次比较; 如果前者比后者小,则交换; 3时间复杂度: 最好O(n),平均O(n^2),最差 O(n^2)...原创 2019-09-19 22:37:20 · 170 阅读 · 0 评论