C++
文章平均质量分 75
冰凌其
这个作者很懒,什么都没留下…
展开
-
c++实用技巧:输入字符串的几种方法,解决接受一个字符串,遇“空格”、“TAB”、“回车”都结束
原文:http://gwyan.blog.163.com/blog/static/213337092201361734257744/C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))1、cin2、cin.get()3、cin.getline()4、getline()5、gets()6、getchar()...转载 2018-02-28 16:52:38 · 4113 阅读 · 0 评论 -
C/C++ 数组排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之希尔排序
希尔排序:给定一个int数组A以及大小n,请返回排序后的数组;核心思想:1、先选择步长i,这里的步长是动态的,每次为之前步长的一半,还有一种方法是设置步长数组,但数组中步长为小于20的素数;2、每次更新步长后,都要从步长大小的索引j=i开始,从索引j开始直到结束,进行遍历,并记录当前值为temp。2.1每次temp都要与k=j-i的索引对应的值(也就是索引j的前面长度为步长的位置的值)进行比较;2...原创 2018-03-05 19:42:17 · 984 阅读 · 0 评论 -
解释循环中的递归调用
#include <iostream>void fun(int a){ int i; printf("%d ",a); for(i=0;i<a;i++) fun(a - 1);}int main(){ fun(3); return 0;}这个程序的运行结果是:3 2 1 0 1 0 2 1 0 1 0 2 1 0 1 0不是太好理解,想理解的话,...原创 2017-11-06 11:39:56 · 2847 阅读 · 0 评论 -
C/C++ 数组排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之堆排序
堆排序:给定一个int数组A以及大小n,请返回排序后的数组;核心思想:1、将数组调整为大堆项。1.1、构造大堆项,需要从第i=n/2(也就是数组的一半)元素到第一个元素依次调整,倒着;(为啥要从n/2开始呢?因为对于二叉树,当前索引的2倍是该索引的左子树索引,2倍+1是右子树索引)1.2、然后分别与A[i]的左右子树比大小,谁大,就把它的值放到A[i]上进行对调;1.3、依次向上走,直到i=0;这...原创 2018-03-05 16:06:37 · 910 阅读 · 0 评论 -
C/C++ 数组排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之快速排序
快速排序:给定一个int数组A以及大小n,请返回排序后的数组;核心思想:1、选取一个轴值(一般是第一个数),将整个数组小于等于轴值的元素放到轴值左边,大于的放到右边。1.1、设置一左(i)一右(j)两个指针。1.2、先从右指针j往左边走,遇到小于轴值(第一个数),将它赋值给左边指针i,并且左边指针i向右移动一个,右指针j停止移动。1.3、该左边指针i往右边走,遇到大于轴值的,将它赋值给停止移动的右...原创 2018-03-05 11:45:28 · 943 阅读 · 0 评论 -
C/C++ 数组,链表排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之归并排序
归并排序:给定一个int数组A以及大小n,请返回排序后的数组;时间复杂度分析: T(n) 拆分 n/2, 归并 n/2 ,一共是n/2 + n/2 = n / \ 以下依此类推: T(n/2) T(n/2) 一共是 n/2*2 = n / \ / \ ...原创 2018-03-04 15:53:42 · 967 阅读 · 0 评论 -
c++实用技巧:for循环与迭代器
原文:https://www.cnblogs.com/guozht/p/7641934.html1.基本的for循环1 std::vector<int> arr;2 ...3 for(std::vector<int>::iterator it=arr.begin();it!=arr.end();it++){4 ... 5 }2.使用auto关键字1 st...转载 2018-02-28 17:40:22 · 1688 阅读 · 0 评论 -
c++实用技巧:字符串反转的3种方法
原文:http://blog.csdn.net/szu_aker/article/details/52422191第一种:使用string.h中的strrev函数[cpp] view plain copy#include <iostream> #include <cstring> using namespace std; int main() { ch...转载 2018-02-28 16:45:54 · 797 阅读 · 0 评论 -
C++排序算法总结(冒泡、插入、选择、希尔、归并、快速、堆)
[转载] (http://blog.csdn.net/yuebai008/article/details/70853756)目录C排序算法总结冒泡插入选择希尔归并快速堆目录冒泡排序插入排序选择排序希尔排序归并排序快速排序堆排序参考冒泡排序时间复杂度 O(n^2)空间复杂度 O(1)稳定排序冒泡排序的原理就是将相邻两项进行比较,如果第一个比第二个大就进行交换,一轮交换之后最大的一项就交换到最后一项,...转载 2018-03-05 21:53:51 · 238 阅读 · 0 评论