C++
Xionglingchu
金融民工,业余码农。
展开
-
选择排序(Selection Sort)
原理: 1) 外循环执行n-1次,内循环每次比较和交换n-i次(i为第i次外循环) 2) 从数组第一位开始循环,后面从第二个元素开始遇到最小值则与之交换;然后第二次循环,从数组第二个元素开始,从第三个元素开始的最小值与之交换……复杂度//选择排序法#include <iostream>using namespace std;int main(){ //step 1:创建数组原创 2017-05-01 21:48:43 · 338 阅读 · 0 评论 -
用C++玩转矩阵
随着以后学习的深入,一旦发现了更多相关的操作方法,Lesley便会不断更新这篇文章的~1 矩阵转置//矩阵转置#include <iostream>using namespace std;int main(){ //step 1:创建矩阵(也即二维数组) int a[2][3]; cout<<"input 6 numbers"; for (int原创 2017-05-01 23:40:02 · 729 阅读 · 0 评论 -
二分查找(Binary Search)
· 适用:有序数组,列表· 思想: step1: 每次从数组的中间元素开始找起 step2: 然后根据目标数字与中间元素的大小关系,锁定该中间元素的左区间或右区间 step3:重复步骤2,直至目标元素=中间元素· 设计算法的tips: 举两个例子代入你的算法,然后算法跟着你的思路走,这些函数关系与递归关系便一清二楚了!例代码:在一个有15个元素的有序数组{2,原创 2017-05-17 19:14:40 · 293 阅读 · 0 评论 -
C++期末考试题
输出所有 “水仙花数” 说明: “水仙花数”是一个3位数,其各位数字立方等于该数本身。本题意义:如何分别求得一个整数的个位、十位、百位数#include <iostream>using namespace std;int main(){ int digit,decimal,hundred; for(int i=100;i<1000;i++) {原创 2017-05-23 17:55:04 · 10905 阅读 · 0 评论 -
MacBook运行C++操作方法(不用安装任何插件)
下面你将看到的是:在Mac上,不用安装任何插件的C++运行方法!!!1. 操作步骤Step1:打开终端, 看到如下 Last login: Sat Jun 17 13:40:14 on ttys000 AnitadeMacBook-Pro: ~ anita $ 操作:输入 cd desktop: AnitadeMacBook-Pro:~ anita$ cd desktopStep2:终端弹出原创 2017-06-17 21:10:55 · 16469 阅读 · 0 评论 -
C++期末复习练手题
1 . 输出字符 ‘A’ 和 ‘a’ 的ASCII码值。#include <iostream>using namespace std;int main(){ int i,j; i='A'; j='a'; cout<<"ASCII of 'A'="<<i<<endl<<"ASCII of 'a'="<<j<<endl; return 0;}输出: AS原创 2017-06-13 18:46:04 · 5606 阅读 · 0 评论 -
输入输出流 (文件读写)
期末考查:肯定是最基本的1)how to 读;how to 写; 2)文本文件;二进制文件 ps:生成二进制文件来读写,往一个二进制文件里读写东西。1. 基本知识1.1 I/O类库中常用流类iostream:通用输入输出流和其他输入输出流的基类 fstream:输入输出文件流类1.2 输入输出单个字符的函数:get函数和put函数get函数 用处:输入单个字符 参数:可以是字符或字符原创 2017-06-05 01:30:37 · 3182 阅读 · 0 评论 -
基于对象的程序设计(OOP)
1. 层次:类>对象>类体:成员(成员变量、成员函数)ps:其中,类体可以是public,也可以是private,public则可以被外界调用,而private则不能被外界调用2. 定义成员函数法一:函数体>3行:在类体内声明成员函数,在类体外定义成员函数(最常用) 法二:函数体<3行:在声明类时在类体内定义//方法一:在类体内声明成员函数,在类体外定义成员函数class Student{pu原创 2017-05-31 19:59:16 · 621 阅读 · 0 评论 -
重载
实质:重载的实质就是写一个重载函数语法:函数类型 operator 运算符名称 {对运算符的重载处理}说明:如果要对加号进行重载,则 “operator +” 就是函数名。方法: (1)成员函数法 定义:把运算符重载的函数作为类的成员函数 说明:在该方法中,重载函数只有一个参数,因为由于重载函数是Complex类中的成员函数,因此有一个参数是隐含的,运算符函数是用this指针隐式访问类对原创 2017-06-07 20:15:37 · 1871 阅读 · 0 评论 -
CS基础面试题
目录判断一个数是否为素数 打印出某个区间内的所有素数插入一个数到一个排好序的数组中求一个数组的逆序(reverse order)分解质因数最大公因数 & 最小公倍数求一个数组中的最大值fibonacci 阶乘 排序 插入一个数1 判断一个数是否为素数(prime number)输入一个数,判断其是否为素数#include <iostream>using namespace s原创 2017-05-03 17:34:43 · 2734 阅读 · 0 评论 -
指针(Pointer)
使用指针,按照大小顺序,输出两个值#include <iostream>using namespace std;int main(){ int a,b; int * pa=&a; int * pb=&b; //定义指针 cout<<"input two numbers"; cin>>a>>b; if (b>=a) { p原创 2017-05-16 14:28:11 · 401 阅读 · 0 评论 -
快速排序(Quick Sort)
原理:快速排序之所比较快,因为相比冒泡排序,每次交换是跳跃式的。每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之间进行交换,交换的距离就大的多了。因此总的比较和交换次数就少了,速度自然就提高了。当然在最坏的情况下,仍可能是相邻的两个数进行了交换。因此快速排序的最差时间复杂度和原创 2017-05-02 01:23:45 · 280 阅读 · 0 评论 -
关于选取方法的总结(Selection)
本质:选取问题所查找元素的位序k,其实就是在其对应的有序序列中的秩。 下面以中位数选取为例来讲解: Algorithm Time Complexity 1 蛮力算法(所有元素排序后再找) O(nlog2n)O(nlog^2n) 2 减而治之(归并) O(log[min(n1,n2)])O(log[min(n1,n2)]) 3.1 基于优先队列(堆1) O(n+klog原创 2017-05-02 01:59:16 · 1015 阅读 · 0 评论 -
希尔排序(Shell Sort)
原理:先比较距离远的元素,而不是像简单交换排序算法那样先比较相邻的元素,这样可以快速减少大量的无序情况,从而减轻后续的工作。被比较的元素之间的距离逐步减少,直到减少为1,这时的排序变成了相邻元素的互换。实例:开始: 9 6 3 4 5 7一、 n = 6, gap = 3 在进入第三层for循环,j = 0; 比较v[0] 和 v[3] (v[j] 和 v[j+gap])的大小,如果前者大,就互转载 2017-05-02 02:22:54 · 398 阅读 · 0 评论 -
递归(Recursion)
实例目录阶乘 阶乘求和 Fibonacci Sequence思想写出一个递归的程序,只需要把握两个关键点: 1)基础项 (base equation) 也是递归结束的终止条件 2)通项 (general equation)递归 v.s. 迭代迭代是循环;而递归不含循环迭代不用栈;递归需要调用栈迭代规模的方向:由小到大;而递归:由大到小实例:e.g.1 阶乘#include <原创 2017-05-03 22:09:10 · 371 阅读 · 0 评论 -
归并排序(Merge sort)
Time complexity:O(logn)方法:二路归并(2-way merge)对象:有序序列(sorted sequence), 即可以是有序向量(sorted vector),也可以是列表(list)算法性质:迭代步骤: 1.无序向量的递归分解(递归) 2.有序序列的逐层归并(迭代)算法描述:(摘自Oxford一哥们写的DS教材~)“Divide and conquer ”原创 2017-05-04 01:37:24 · 388 阅读 · 0 评论 -
插入排序(Insertion sort)
算法描述: the list is divided into two sublists: sorted and unsorted.Step1: move the first element of the unsorted list into the sorted list in the proper place.Step2: repeat this process on the resultin原创 2017-05-04 02:52:34 · 274 阅读 · 0 评论 -
C++图形打印题
关键:写代码之前弄清楚这几个问题 1.有几行 2.每一行由哪几种元素组成 3.每一行的元素与行数有无关系1. 星星题#include <iostream>using namespace std;int main(){ for(int j=1;j<6;j++)//j控制行数 { //每一行由空格和星星组成,空格的个数k与行数j有关系 for原创 2017-05-17 20:51:16 · 3547 阅读 · 0 评论 -
优化后的冒泡排序(Bubble Sort)
冒泡排序时间复杂度(Time Complexity)假设:数组内有n个元素 外循环:最多执行n-1次 内循环:最多扫描n-1次,交换n-1次;因此共为2(n-1)次 ==> 时间复杂度:T(n)=O[2(n−1)2]=O(n2) T(n)=O[2(n-1)^2 ]=O(n^2)空间复杂度(Space Complexity)空间复杂度:S(n)=O(1) S(n)=O(1)算法描述1 st r原创 2017-05-01 18:25:48 · 613 阅读 · 0 评论 -
2017 TIOBE Index
趋势图 Top20原创 2017-07-06 16:01:07 · 912 阅读 · 0 评论