自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 C++文件的读写操作详解

在程序设计中,文件常用的操作不外乎——打开、读、写、流指针操作、关闭。在回答问题时,却发现很多道友没有真正掌握这些简单的操作。为此,博主就文件的一系列操作进行详细介绍,供道友们学习。一、文件的相关概念(一)文件及文件类型计算机上的文件其实是数据的集合,对文件的读写其实是对数据的读写。文件可以大致分为两种:文本文件和二进制文件。  1、文本文件:它的每一个字节存放的是一个ASCII码,代表...

2019-05-30 11:28:47 31964 9

原创 玩转递归算法——必学之一

递归是常见的算法之一,很多初学者对递归掌握得不彻底,导致在实际问题中不知道如何递归?最后直接死循环!!今天,详细讲解一下递归函数,让学者掌握写递归函数的正确思维与方法,玩转递归!!!(一)什么是递归先看一个简单的例子—计算n!根据平常的思维,很容易就写出以下代码:#include<stdio.h>int main() { int n,i,s; scanf("%d",&am...

2019-05-23 20:41:37 648

原创 运行结果是随机数——我帮你解决

很多道友都会有疑问:我的程序看起来没有问题呀,逻辑也没有问题,为什么运行结果是个随机数呢?不知道正在看这篇文章的你有没有遇到同样类似的问题呢?接下来,我就梳理一下导致随机数的常见原因:1、变量没有初始化这是很多道友忽略的一个问题。在某些情况下,不初始化不会产生问题;但在某些情况下,不初始化就会产生问题。例如:输入n,计算1到n的所有数字之和。#include<stdio.h>...

2019-05-22 21:08:25 1353

原创 scanf详细讲解——你真的会用吗?

给道友纠正程序错误时,发现他们对scanf函数理解不够彻底,数据的读取不正确,进而导致程序运行错误!今天,我就根据学者的问题讲解一下scanf函数,希望学者以后避免出现与scanf相关的问题。(一)scanf的基本格式scanf(格式控制, 地址列表);例如:int a; scanf(“%d”,&a);int a,b; scanf(“%d%d”,&a,&...

2019-05-21 22:35:14 17477 14

原创 堆排序——一学就会

堆排序是利用堆这种数据结构而设计的一种排序算法。既然是利用堆进行排序,我们首先了解什么是堆?什么是完全二叉树?(1)完全二叉树是指一种树型结构,每一个结点的子节点数不超过2个。图1、2/3均为完全二叉树,图4不是完全二叉树:(2)堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:怎么...

2019-05-19 19:28:35 1832 1

原创 最简单的排序法——sort( )函数

sort( )函数是库函数提供的排序函数,必须包括头文件#include。书写形式为:sort(数组起始位置,数组结束位置,cmp),其中第三个参数cmp表示排序方式的函数,默认表示升序方式,可省略。(1)升序排序例如:数组a[5]={4,3,2,1,7}进行升序排列写法一:sort(a,a+5) //数组的下标从0开始,数组名代表数组的首地址。5代表数组的长度当然,如果人为地把数组的...

2019-05-15 17:46:07 5025

原创 希尔排序(ShellSort)——加强版的插入排序

希尔(Shell)排序又称为缩小增量排序,它是插入排序算法的一种加强版。它与插入排序的不同之处在于:它会优先和距离较远的元素进行比较。希尔排序的基本思想:(1)选择一个希尔增量序列t1,t2,…,tk,(递减序列,tk=1)(2)按增量序列个数k,对序列进行k 趟排序,每趟排序,根据对应的增量ti,将待排序列分割成若干子序列,分别对各子序列进行插入排序。当且仅当增量为1 时,整个序列合成...

2019-05-15 13:46:59 466 1

原创 快速排序(Quick Sort)—挖坑填数法

前面的博文讲了冒泡排序、选择排序、插入排序,今天我们谈谈快速排序!快速排序的基本思想是:1.先从序列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。(分区的方式多样,但一定要保证基准数左边的数比它大(小),右边的数比它小(大))3.再对左右区间重复第一步、第二步,直到各区间只有一个数。快速排序的关键点(一定要理解):1、 如何确定基...

2019-05-14 21:06:56 3806 1

原创 插入排序法(详细介绍)

前面我的博文中详细介绍了冒泡排序法、选择排序法,今天我们继续学习另一种排序方法—插入排序,分为前插排序和后插排序。插入排序的基本思想是:将数组的第一个数认为是有序数组,从后往前(从前往后)扫描该有序数组,把数组中其余n-1个数,根据数值的大小,插入到有序数组中,直至数组中的所有数有序排列为止。这样的话,n个元素需要进行n-1趟排序!!!举个例子:4个数字4,6,7,5进行从大到小的排序。前插排...

2019-05-13 21:26:22 103327 11

原创 选择排序法——超详细的总结

之前在我的博文中详细介绍了冒泡排序,它的基本思想是:每次比较相邻两个数的大小,只要逆序(和题意要求的顺序相反),就交换两个数;这样交换的次数繁多!而选择排序法就避免了这个问题。选择排序的基本思想:找到当前数字序列中最大(最小)的数,记录其所在位置,将其和最前面(最后面)的数进行交换,使最小(最大)的元素上浮(下沉)到本次排序的最前面(最后面),从而完成一趟(pass)排序。下一趟排序时,已经有...

2019-05-13 18:08:13 20162 2

原创 超详细的冒泡排序法:(一学必会)

最近很多刚入门的道友在询问数据排序的问题,在这里,我也详细给大家写一写,非常适合初学者,希望能对你有所帮助。常用的数据排序的方法有:冒泡排序法、插入排序法、选择排序法、快速排序法、归并排序、堆排序、希尔排序等!由于篇幅过长,因此,分开讲解!1. 冒泡排序(Bubble Sort)冒泡法排序的基本思想:从前向后(或从后向前)依次比较相邻两个元素的大小,如果逆序(与题意要求的顺序相反)就进行交...

2019-05-13 16:45:44 5078 6

原创 程序出错,找不到问题在哪?——我给你方法

很多学习语言编程的道友在写程序都有这样一个感受:程序写完后,点击运行,却不是预期的结果。然后就困恼到底是哪里出错?今天我就这个问题,给道友们一些建议:1、避免写代码马虎,发生低级错误比如说本来是if(a==b),但是写的快,却写成了if(a=b);本来是printf("%d",a)却少了%,scanf("%d",&a);却少了&等等问题。这些问题单独拿出来看,大家都说知道,但...

2019-05-10 15:30:28 1718

原创 自定义函数及函数调用

在论坛中,发现有的道友对自定义函数的调用存在这以下问题:1、自定义函数声明、函数调用、函数实现概念混淆2、形参和实参混淆;3、自定义函数参数的传值方式混淆;传来传去都不知道传的到底是什么?接下来,我就重点围绕道友们常见的问题,说一说:1、自定义函数声明、函数调用、函数实现比如:交换两个数的值的自定义函数swap函数声明方式: void swap(int &a,int &amp...

2019-05-10 12:17:10 8742

原创 逻辑思维在编程中的重要性!!!(回答问题有感)

最近一直在回答道友的问题,一直在改他们写的代码。有很多感慨,整理一下:1、代码的语法错误可能有的道友不相信,但是这确实是新手存在的很大的问题。对于简答的程序可能还不会犯这种错误。但是,当程序代码很多的时候,这个问题就体现得很明显。在这里,我想说,语言的语法是编写程序最基本的,希望道友们开始写代码的时候,能把语法学好,学扎实。2、代码的逻辑错误这个是程序的根本问题,这个问题对于刚入门的道友来...

2019-05-09 22:38:15 2789 2

原创 PAT 1002 写出这个数(很水)

题意:读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^10读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最...

2019-05-09 16:02:06 137

原创 UVA-230 Borrowers 题解

最近帮学习者解决了UVA 230的题解,说说我的几点看法题意:输入几本书的信息,包括书名、作者名 以“END”结束;然后再输入操作信息,有“BORROW" ,“RETURN”,"SHELVE”分别表示借、环、上架,以“END”结束。对于每一个"SHELVE”操作,按照题目要求输出归还的书应该放在哪个位置,要求按照先作者后书名的升序顺序进行输出,并输出“END”。总的来说,这道题简单,不涉及算法...

2019-05-09 13:24:20 241

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除