【编程算法 - 不用加减乘除做加法 代码(C)】教程文章相关的互联网学习教程文章

编程算法基础-假设修正法

1.3假设修正法衡量一个软件的质量的标准是什么?正确性,运行效率,稳定性,可读性(逻辑清晰、简明,甚至有时可以牺牲效率)求最大值求a,b,c三个数中的最大值。/*有a,b,c三个数字,求最大值。*/ package AsumeCorrect;public class MaxNumber {public static void main(String[] args) {int a = 3;int b = 10;int c = 7;int m = a;// 假设,擂主if (b > m) {// 修改m = b;}if (c > m) {// 修改m = c;}System.out.println(m);} }10...

致那些年追寻C语言编程的青春, 从语法, 到界面, 再到算法, 只有这些了【图】

那些年学C/C++的我做过这些项目,这些年正在学习的你们做过什么,纯属装逼娱乐,请勿模仿。懵懂期那时还是彩笔一个,终极版菜鸟,倒弄一些自以为很有意思的东西作品一:(效果稍微久一点)大家熟悉的黑窗口 GIF 作品二:(效果稍微久一点)大家熟悉的黑窗口 其他黑窗口的东西,太多了,就不提起了,反正就是很多很多 作品二:推箱子 GIF 在后面就发现自己脑智商完全跟不上了,甚至有点怀疑是不是智商不够了,想想就有点害怕,不过...

编程之法:面试和算法心得(最长回文子串)【代码】

内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java题目描述给定一个字符串,求它的最长回文子串的长度。分析与解法最容易想到的办法是枚举所有的子串,分别判断其是否为回文。这个思路初看起来是正确的,但却做了很多无用功,如果一个长的子串包含另一个短一些的子串,那么对子串的回文判断其实是不需要的。解法一那么如何高效的进行判断呢?我们想想,如果一段字符串是回文,那么以某个字符为中心的前缀和后...

编程算法 - 不用加减乘除做加法 代码(C)【图】

不用加减乘除做加法 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 写一个函数, 求两个整数之和, 要求在函数体内不得使用+, -, *, /四则运算符号.不能使用运算符号, 使用位运算, 第一步异或运算选位, 第二步与运算进位.代码:/** main.cpp** Created on: 2014.7.13* Author: Spike*/#include <iostream> #include <list>using namespace std;int Add (int num1, int num2) {int sum, carry;do {sum = num1 ^ nu...

Python编程之数据结构与算法练习_009【代码】

练习内容:判断一棵树是否是搜索二叉树。正文内容提要:1.创建类实现双向链表及基本栈结构。2.创建类表示二叉树。3.判断一棵树是否是搜索二叉树的递归与非递归实现。4.简单测试,验证正确性。1.创建类实现双向链表及基本栈结构。代码如下:class DoubleLinkedList:class Node:def__init__(self, data):self._data = dataself._next = Noneself._pre = Nonedef__init__(self):self.__head = DoubleLinkedList.Node("__head")self.__...

LeetCode算法编程之连载三【代码】

1、题目 - Linked List Cycle IIGiven a linked list, return the node where the cycle begins. If there is no cycle, returnnull.Follow up: Can you solve it without using extra space?题目解释:单链表找环的题目,代码中不开辟新的空间,这道题应该是算法面试和一些书籍上常见的题。这道题,在读书的时候就做过了,不过很久没有搞类似的算法,碰到这道题,还捣鼓了一会,所以说呢,思考后,要及时记录下来,思绪很宝贵,可...

郑捷《机器学习算法原理与编程实践》学习笔记(第六章 神经网络初步)6.3 自组织特征映射神经网路(SMO)【代码】【图】

具体原理网址:http://wenku.baidu.com/link?url=zSDn1fRKXlfafc_tbofxw1mTaY0LgtH4GWHqs5rl8w2l5I4GF35PmiO43Cnz3YeFrrkGsXgnFmqoKGGaCrylnBgx4cZC3vymiRYvC4d3DF3自组织特征映射神经网络(Self-Organizing Feature Map。也称Kohonen映射),简称为SMO网络,主要用于解决模式识别类的问题。SMO网络属于无监督学习算法,与之前的Kmeans算法类似。所不同的是,SMO网络不需要预先提供聚类的数量,类别的数量是由网络自动识别出来的。...

编程算法 - 数组中只出现一次的数字 代码(C)【图】

数组中只出现一次的数字 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 一个整型数组里除了两个数字以外, 其他的数字都出现了两次. 请写程序找出这两个只出现一次的数字.如果从头到尾依次异或数组中的每一个数字, 那么最终的结果刚好是那个只出现一次的数字.根据结果数组二进制某一位为1, 以此分组, 为1的一组, 为0的一组, 再重新进行异或. 最后得出两个结果.时间复杂度O(n).代码:/** main.cpp** Created on: 2014....

【CUDA并行编程之八】Cuda实现Kmeans算法【图】

本文主要介绍如何使用CUDA并行计算框架编程实现机器学习中的Kmeans算法,Kmeans算法的详细介绍在这里,本文重点在并行实现的过程。当然还是简单的回顾一下kmeans算法的串行过程:伪代码:创建k个点作为起始质心(经常是随机选择) 当任意一个点的簇分配结果发生改变时对数据集中的每个数据点对每个质心计算质心与数据点之间的距离将数据点分配到距其最近的簇对每一个簇,计算簇中所有点的均值并将均值作为质心我们可以观察到有两个部...

对二分算法的理解及结对编程情况【代码】

一、对二分算法理解二分算法,又称折半算法,是应用分治策略的典型例子。二分查找主要对有序序列进行对所指定数字的查找,通过不断缩小搜查范围,在比较中间的数后对左右两个数组进行相同操作,以得到最终的带查找数字。时间复杂度logn,对数组较大时能显著提高程序效率。二、算法代码#include <iostream>using namespace std;int main(){ int n,x; cin >> n; if(1<=n<=100){ int a[n]; for(int i=0;i<n;i++){ cin >> a[i];...

【转】十大编程算法助程序员走上高手之路

算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。算法步骤:1 从数列中...

解决拿蛋问题的时候,通过几个shell脚本运算速度对比,体会了算法和编程优化的重要性【代码】【图】

前几天,一位同学在群里提出一个拿蛋的问题,原题如下:有一筐鸡蛋,1个1个拿,正好拿完2个2个拿,正好拿完3个3个拿,正好拿完4个4个拿,剩下2个5个5个拿,剩下4个6个6个拿,正好拿完7个7个拿,剩下5个8个8个拿,剩下2个9个9个拿,正好拿完求:筐里一共有多少鸡蛋?请使用脚本方式,计算鸡蛋总数!个人感觉这个题目写的不严谨,因为至少我没看明白,这道题问的到底是“这个筐里最少有多少鸡蛋?”还是“筐里鸡蛋总数在某一范围之内...

[编程题] 把二叉树打印成多行【代码】【图】

把二叉树打印成多行题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思考分析(类似二叉树的程序遍历)参考:二叉树层序遍历要把二叉树按照每行打印出来,我们可以借助一个队列来处理,一开始把root节点放入到对列中,每次处理,把队列中的元素取出,放入到一个行中(list),然后把队列中的所有信息都换为其下一行的孩子信息,继续如上处理.直至某一次队列返回空,就跳出while循环,返回结果。Java代码...

Java编程的逻辑 (53) - 剖析Collections - 算法【代码】【图】

之前几节介绍了各种具体容器类和抽象容器类,上节我们提到,Java中有一个类Collections,提供了很多针对容器接口的通用功能,这些功能都是以静态方法的方式提供的。都有哪些功能呢?大概可以分为两类:对容器接口对象进行操作返回一个容器接口对象 对于第一类,操作大概可以分为三组:查找和替换排序和调整顺序添加和修改 对于第二类,大概可以分为两组:适配器:将其他类型的数据转换为容器接口对象装饰器:修饰一个给定容器接口对...

编程算法 - 迷宫的最短路径 代码(C++)【图】

迷宫的最短路径 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy题目: 给定一个大小为N*M的迷宫. 迷宫由通道和墙壁组成, 每一步能够向邻接的上下左右四格的通道移动.请求出从起点到终点所需的最小步数. 请注意, 本题假定从起点一定能够移动到终点.使用宽度优先搜索算法(DFS), 依次遍历迷宫的四个方向, 当有能够走且未走过的方向时, 移动而且步数加一.时间复杂度取决于迷宫的状态数, O(4*M*N)=O(M*N).代码:/** main.cpp** ...