- 博客(12)
- 资源 (1)
- 收藏
- 关注
转载 【C++——编译与链接(1)】编译与链接过程
大家知道计算机使用的一系列的1和0那个一个C++语言程序又是如何从一个个.h和.cpp文件变成包含1和0的可执行文件呢?可以认为有以下的几个环节源程序->预处理->编译和优化->生成目标文件->链接->可执行文件1.预处理C++的预处理是指在C++程序源代码被编译之前,由预处理器对C++程序源代码进行的处理。这个过程并不对程...
2019-02-28 15:57:53 245
转载 【数据结构】八种经典排序算法
排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列。我整理了以前自己所写的一些排序算法结合网上的一些资料,共介绍8种常用的排序算法,希望对大家能有所帮助。八种排序算法分别是:1.冒泡排序;2.选择排序;3.插入排序;4.快速排序;5.归并排序;6.希尔排序;7.二叉排序;8....
2019-02-28 15:48:04 779
转载 100 条经典C语言笔试题目
题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C 语言面试宝典(林锐《高质量编程第三版》)。说明:1、部分C 语言面试题中可能会参杂部分和C++ 相关的知识,为了保持题目的灵活性故保留,但选题最终还是会以C 语言题目为主体;2、以上公司的面试题目已成为国内中小型企业公司出题模板;3、由于本人的能力有限加上时间仓促,本课件肯定存在不足之处,...
2019-02-28 15:34:18 2183
转载 【数据结构——栈】栈的应用1——超级计算器(中缀与后缀表达式)C语言
这里要学的程序主要用来实现一个功能——输入表达式输出结果,也就是一个计算器。效果如下: 这个程序主要有两个步骤:1、把中缀表达式转换为后缀表达式;2、计算后缀表达式的结果。首先先明白几个问题:1、为什么要转换为后缀表达式?因为后缀表达式容易实现计算机计算结果。(可以百度一下后缀表达式,又称逆波兰式)2、怎么把中缀表达式转换为后缀表达式?3、怎么用后缀表达式输出结果?...
2019-02-27 17:30:07 466
原创 【数据结构——数组(四)】找到数组中第一个不重复出现的整数
思路一:用数组存储每个数字出现的次数,但题目只需要找到第一个不重复出现的数,故浪费空间,O(N^2)思路二:双循环,找到第一个不重复,即返回,O(N^2)代码1:/** * 找出数组中第一个不重复的数字,如果没有就返回null */public class FirstDupNum { @Test public void start() { int ...
2019-02-27 15:41:41 3621
原创 【数据结构——数组(五)】常见排序算法总结
public class sort { private static int count = 0; public static void main(String[] args) { int[] a = { 4, 2, 1, 6, 3, 6, 0, -5, 1, -2 }; // Bubble(a); //冒泡 // Select...
2019-02-27 11:22:02 234
转载 【数据结构——链表】基础篇
链表和数组作为算法中的两个基本数据结构,在程序设计过程中经常用到。尽管两种结构都可以用来存储一系列的数据,但又各有各的特点。数组的优势,在于可以方便的遍历查找需要的数据。在查询数组指定位置(如查询数组中的第4个数据)的操作中,只需要进行1次操作即可,时间复杂度为O(1)。但是,这种时间上的便利性,是因为数组在内存中占用了连续的空间,在进行类似的查找或者遍历时,本质是指针在内存中的定向偏移。然而...
2019-02-23 16:02:26 281
原创 【算法——评估标准】时间复杂度和空间复杂度
1.时间复杂度:时间复杂度是一个函数,它定性描述了该算法的运行时间。意义:同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。 定义: 关于这是一个代表算法输入值的字符串的长度n的函数。 时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。 使用这种方式时,时间复杂度可...
2019-02-23 15:18:31 1334 3
原创 【数据结构——数组(三)】冒泡排序
在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如:一个保存了班级学号的数组,排序后更容易分区好学生和坏学生;一个保存了商品单价的数组,排序后更容易看出它们的性价比。以从小到大排序为例,冒泡排序的整体思想是这样的:算法思想:·从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值)...
2019-02-23 15:03:18 294
原创 【数据结构——面试篇】数据结构与算法总结
数据结构部分:1、数组和链表的区别。(很简单,但是很常考,记得要回答全面)C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小。而在实际应用中,用户使用数组之前无法确定数组的大小,只能够将数组定义成足够大小,这样数组的空间可能不被使用,从而造成内存空间的浪费。链表是一种常见的数据组织形式,他采用动态分配内存的形式实现。需要时...
2019-02-23 11:30:04 293
转载 【数据结构——数组(二)】查找数组中第k大的数
问题: 查找出一给定数组中第k大的数。例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8……思考:1. 直接从大到小排序,排好序后,第k大的数就是arr[k-1]。 2. 只需找到第k大的数,不必把所有的数排好序。我们借助快速排序中partition过程,一般情况下,在把所有数都排好序前,就可以找到第k大的数。我们依据的逻辑是,经过一次partition...
2019-02-23 11:06:18 1430
原创 【数据结构——数组(一)】查找数组中第二小的元素
第二小的元素这里有很多方法可以实现:方案一:按递增顺序对数组进行排序,堆排、快排、归并排序等等都可以达到目的。排序数组中的前两个元素是两个最小的元素。这个解的时间复杂度是O(nlogn)。 关于排序算法后续会继续更新。方案二:扫描数组两次。在第一次遍历中找到最小元素。让这个元素为x,在第二次遍历中,找到最小的元素大于x,这个解的时间复杂度是O(n)。方案三:在一次遍历中找到最小的...
2019-02-23 11:03:49 1365
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人