![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
青雨xh
这个作者很懒,什么都没留下…
展开
-
【算法-3】求100—999之间的水仙花数
输出100—999中所有的水仙花数,若3位数xyz满足 , 则xyz为水仙花数,例如, 因此153是水仙花数。#include <iostream>using namespace std;// 方法一void daffodil_1(){ int a = 0; for (int x=1; x<10; x++) { for (int y =0; y<1原创 2016-07-19 22:44:08 · 1789 阅读 · 0 评论 -
【链表】逆序输出单链表(单链表反转)
将一个单链表从尾到头反过来打印每个结点的值我想到了三种方法:先反转单链表,然后再从头到尾输出;直接访问单链表每个结点,依次将每个结点存储在一个栈中,然后输出这个栈;利用递归访问原单链表;创建单链表单链表结点定义:struct Node{ int data; Node *next;};创建长度为6的单链表Node* createList(int n){ Node原创 2017-09-24 17:37:35 · 5220 阅读 · 0 评论 -
【链表】单链表创建,删除,插入,查找
链表链表是线性表的链式存储结构,是用一组任意的存储单元存储线性表的数据元素(存储单元在内存中是不连续的)。 每个数据单元有两部分组成,一个是数据域,存储数据值;另一个是指针域,指向下一个数据单元。这样的数据单元叫做结点。优点相比于顺序表,在插入和删除元素时,效率很高;缺点:链表的元素是不支持随机访问的,想要知道某个元素,只能从头结点开始遍历整个链表,因此链表访问随机元素的平均时间复杂度是O(n);原创 2017-09-23 17:47:25 · 5038 阅读 · 0 评论 -
【算法】1分2分5分的硬币,组成1角,共有多少种组合
1*x + 2*y + 5*z = 10解法一:暴力枚举法void main(){ int n = 0; // 5分硬币最多有i个 for (int i=0; i<3; i++) { // 2分硬币最多有10-5*i个 for (int j=0; j<=(10-5*i)/2; j++) { // 1分硬币的个数原创 2017-09-23 11:19:36 · 9184 阅读 · 0 评论 -
【排序算法-3】选择排序法
这里附上详细的冒泡排序文章的链接:【排序算法一】冒泡排序详解选择排序法(Select Sort)1. 基本思想:每一趟从待排序的记录中选出关键字最小的记录,顺序放在“已排好序的数据”的最后,直到排序完所有数据。 每次遍历,只选择最值元素进行交换,这样一次遍历,只需进行一次交换即可,从而避免了其它无价值的交换操作。 可使用两种方式排序。在所有的数据中,当由大至小排序时,则将最大值放入第一位置。若由原创 2017-04-04 10:11:11 · 515 阅读 · 0 评论 -
【算法-4】打印蛇形矩阵
一个m*n的矩阵里按照下图形式填充,最后形成的矩阵即为蛇形矩阵,下图是m=4, n =5时的蛇形矩阵:方法一:逐层循环#include <iostream>using namespace std;const int ROW = 6;const int COLUMN = 10;const string space = " ";void setSnakeMatrix(int array[ROW][原创 2016-07-22 22:38:12 · 1494 阅读 · 0 评论 -
【算法-2】判断字符串是否为回纹串
回纹串:一个字符串从左向右读出的内容和从右向左读的内容是一样的;递归算法就是函数自身调用自己,其实质是把问题分解成规模更小的类似问题,可以看成是分治思想。优点:递归算法简洁并且容易理解,并且简化编码;缺点:耗内存,并且执行速度往往比较慢,又起问题规模比较大时;#include using namespace std;bool isPalindrome(char *st原创 2016-07-10 08:09:45 · 954 阅读 · 0 评论 -
【算法-1】输出网格图形
今天来写几行代码吧,其实是前段时间面试遇到的一道简单算法题,就此做一个简单的记录。题目:通过符号“|”(或) 和 符号“_”(下划线)输出特定行数和列数的网格图形;直接上代码吧:C++#include using namespace std;void displayGrid(int m, int n);int main(){ int gridRow = 0原创 2016-06-01 13:31:05 · 2161 阅读 · 0 评论 -
【排序算法-4】直接插入排序法
基本思想:插入排序法的基本思想就是是逐一将数组中的元素与已排好序的元素进行比较,再将该数组元素插入到合适的位置; 其实就是每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。例子下面,用数组 6,1,9,5,2 的由小到大排序过程,来说明插入排序法的思想。第1号元素1与它前面的第0号元素6比较,1号元素的值小于0号元素的值,两者做交换,结果为原创 2017-05-14 10:29:28 · 504 阅读 · 0 评论 -
【排序算法-2】冒泡排序详解
一.简述上篇总结了一下常用的排序算法,排序算法总结,这篇文章将详细介绍冒泡排序算法。 冒泡排序法(Bubble Sort)是由观察水中冒泡的变化启发而来,需要遍历几次数组,在每次遍历的过程中,比较连续相邻的元素,如果相邻的两个元素是降序,则将他们俩的值互换,如果是升序则保持不变,然后再继续比较下一个相邻元素。由于较小的值像“气泡”一样会逐渐浮起来,较大的值会慢慢沉下底部,所以将这种排序技术形象的称原创 2017-02-25 16:59:42 · 1239 阅读 · 0 评论 -
【排序算法-1】排序算法总结
排序算法:排序算法在计算机中具有举足轻重的地位,也是我们在平时码字时最常用到的算法,当然我们可能并没有察觉到,因为这些算法往往都被集成在各种计算机语言中了,比如c,c++,java等。我们在使用的时候都很少去关心它的内部实现。我认为这些算法是很有必要搞懂搞清楚的,在此我做总结下,做个简单的笔记。一.排序的分类1. 按照移动对象分为两种:(1)对数据直接进行移动,从而达成排序的目的; (2)移动储原创 2017-02-25 13:37:25 · 363 阅读 · 0 评论 -
【算法-5】统计字符串次数
统计一个给定字符串中指定的字符出现的次数 如输入: Hello World 输 出: e 1 H 1 l 3 o 2 r 1 W 1 space 1c++代码如下://// main.cpp原创 2017-01-08 21:44:12 · 483 阅读 · 1 评论 -
【排序算法-5】快速排序法
一.基本思想 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列,其实快速排序是基于一种叫做“分治”的思想,快速排序法是目前公认的最佳排序法。具体来说就是在data[]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右...原创 2018-03-11 11:36:06 · 331 阅读 · 0 评论