算法
文章平均质量分 62
zkx_jhun
学习无止境,永远是小白
展开
-
三个数的排序常用方法
问题:假定有三个数a,b,c;我们要把他们按从小到大排序,要怎么做最简单?思路:把最小的数放左边,最大的数放右边。可以用三个if实现排序。实现:三个if的方法://_3if.cint main(){ int a,b,c,temp; //读入三个数 scanf("%d %d %d",&a,&b,&c); ...原创 2017-11-14 10:32:58 · 49363 阅读 · 6 评论 -
C语言字母大小写互换的简单方法
字母的大小写互换其实很简单回到最基本的数据的存储形式,从八位二进制角度去看大写字母和小写字母,你会发现它们的低四位是相同的,高四位有细微差别。举例: ASCII DEC BIN ‘A’ 65 01000001 ‘a’ 97 01100001 ‘B’ 66 01000010 ‘b’ 98 011...原创 2017-11-13 22:35:29 · 29009 阅读 · 1 评论 -
算法——冒泡排序
我们学习排序算法时,最先学习的一定有冒泡排序。它最简单、好理解,所以再不考虑复杂度的情况下也是很常用的排序算法(我经常用 毕竟 两个for嵌套 一个swap 嘛,很好记)接下来我们来看看它的算法思路。 先不谈别的,先谈一谈为什么叫冒泡排序。 我们来看《啊哈!算法》中萌萌的插图,方便理解。 想象数组中的数无序排列,每个数就好似水中的气泡。比较相邻两个气泡(数)的大小...原创 2018-02-19 12:14:07 · 346 阅读 · 0 评论 -
算法——快速排序
在懂得递归过程、理解分治法原理后,理解快速排序是很简单的事情。 快速排序顾名思义:快、高效。不多bb,上思路和代码。 算法的基本思想是: (1)先从数列中取出一个数作为基准数(常常选第一个数); (2)分区过程,小于或等于的数全放到它的左边,比这个数大的数放到它的右边; (3)再对左右区间重复第二步,直到每个区间只有一个数为止,即左边界下标等于右边界下标; 简化描...原创 2018-02-19 12:29:10 · 261 阅读 · 0 评论 -
算法——归并排序
“分而治之”在了解了分治法与递归以后,就可以理解一种新的排序算法了。它叫做 :“归并排序”。对数组排序可以通过分治法来解决。我们把数组拆分成很多部分,直到数组元素为1,然后使每一部分有序后再合并成新的有序数组,最后可以得到排序的结果。下面通过代码简单看看归并排序#include <cstdio>#include <iostream>using namespace std;/...原创 2018-03-24 14:34:41 · 189 阅读 · 0 评论 -
算法——最短路径之Dijkstra
解决非负权边的最短路径问题时,Dijkstra算法还是不错的不多bb,挂模板代码没写注释,很好理解的#include <cstdio>#include <iostream>#include <cstring>#include <stack>using namespace std;const int N = 100;const int INF = 1e...原创 2018-03-24 14:43:46 · 787 阅读 · 0 评论