请算法简单点(1)
来源:互联网 发布:淘宝客不计入销量了吗 编辑:程序博客网 时间:2024/05/19 03:17
一、change your mind
其实算法很难,但是我们可以从最简单的开始学啊~~,学着学着就简单了。
二、这就是算法~
(一)从最简单的开始吧(都是从小到大排的)
(1)选择
static void Main(string[] args) { int[] nums = new int[] { 5, 2, 1, 4, 3 }; int temp = 0; int minIndex = 0; for (int j = 0; j < nums.Length ; j++) { minIndex = j; for (int i = j; i < nums.Length ; i++) { if (nums[i] > nums[minIndex]) { minIndex = i; } } temp = nums[minIndex]; nums[minIndex] = nums[j]; nums[j] = temp; Console.WriteLine(nums[j] + "\t"); } Console.ReadKey(); }
(2)冒泡
static void Main(string[] args) { int[] nums = new int[] {5,2,1,4,3}; int temp = 0; for (int j = 0; j < nums.Length-1; j++) { for (int i = 0; i < nums.Length - 1 - j; i++) { if (nums[i]< nums[i + 1]) { temp = nums[i]; nums[i] = nums[i + 1]; nums[i + 1] = temp; } } } for (int i = 0; i < nums.Length; i++) { Console.WriteLine(nums[i] + "\t"); } Console.ReadKey(); }
(3)插入
for (int i = 1; i < nums.Length; i++) { int temp= nums[i]; //首先记住这个预备要插入的数 int j = i - 1; //找出它前一个数的下标 //如果这个条件满足,说明,我们还没有找到适当的位置 while (j <= 0 && temp < nums[j]) //这里小于是升序,大于是降序 { nums[j + 1] = nums[j]; //同时把比插入数要大的数往后移 j--; } //插入 nums[j + 1] = temp;
选择排序与交换排序是不一样的
选择排序:假设一个是最大的,其他所有元素一次与之相比较,最后选出最大的放在变量中保存起来。
交换排序:相邻两个之间相比较,并交换,将最大的冒出来。
(二)加深一点难度
(1)快速排序
键值,轴值
(2)希尔排序
按照固定间隔进行划分并不断
(3)堆排序
找出中间值,上下进行比较
(三)算法设计
(1)时间复杂度
时间复杂度是指,输入规模n与总运行时间之间的关系。
(2)分治
1.递归
2.分治
(3)动态规划
1.最后子结构
2.重叠子问题
小结:时隔这么多天,再次编辑,发现没有办法写下去了,所以就写了一篇新的。让算法变得简单,加油。
阅读全文
1 0
- 请算法简单点(1)
- TortoiseSVN 简单使用说明(老手请绕弯)
- FTP文件下载(未能实现,请给点建议)
- 网上骂人请悠着点
- 请对新人宽容点
- 各路大神请点进来!
- 请待他好点
- 个人收藏*(请不要点)
- 判断点在多边形内外的简单算法
- 判断点在多边形内外的简单算法
- 几个简单的数据点平滑处理算法
- 判断点在任意多边形内部最简单的算法
- 几个简单的数据点平滑处理算法
- 几个简单的数据点平滑处理算法
- 几个简单的数据点平滑处理算法
- 几个简单的数据点平滑处理算法
- 24点算法进度1
- 请编写二分法算法
- python爬去知乎和简书内容
- HDU6210 transaction transaction transaction
- 2017.9.10 连续攻击游戏 思考记录
- pin_ptr (C++/CLI)
- Hibernate初学者---关于log4j 的知识
- 请算法简单点(1)
- 打印下列华氏温度与摄氏温度对照表。
- Android UDP协议通信简单尝试
- Add Two Numbers算法
- BZOJ 4010 菜肴制作(拓扑排序)
- mysql表损坏及修复
- MATLAB元胞数组写入Access数据库
- 在 centos7 版本中的 各项服务启动命令
- 2018京东笔试