自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++缺省参数

缺省参数就是C++设计出来对C语言函数定义的优化对于上面Func()来说,在主函数中没有给参数但是在函数定义的时候有int a=0那么a就为0去运行函数,但如果给了参数Func(10),那么a就等于10,说白了就是你给我我就把原来有的丢掉用你给的,你要是不给我我就用我自己的。这就是缺省参数。

2024-09-29 17:38:12 179

原创 C++的cin,cout,endl

在学c语言时我们学的是scanf和printf还有"\n",这些就对应了C++中的cin,cout,endl。cin,cout,endl存在于库函数<iostream>中我们要用他就需要引入这个库或者我们可以用using namespace std 来打开标准库用这三个函数但是在实际项目开发尽不建议用这个让我们看代码来对比一下用法这就是printf和scanf和“\n”的用法和cin,cout,endl的不同 endl其实就是换行,差不多相当于“\n”只不过它多了刷新缓冲区。

2024-09-29 17:09:17 347

原创 命名空间namespace

非常简单,就是用namespace关键字定义一个范围,并且给这个范围取个名字,等下次你想调用你设置的这些个,变量,函数,什么个玩意,你怕跟别的冲突了你就在设置的时候给他划一块范围,等你想用的时候,你告诉系统什么范围的就不会和别的冲突了。看下面代码和解释int main()return 0;你看,上面这个打印rand就和系统的rand函数冲突了,系统不知道你要那个就报错了,但下面这个你告诉了系统范围的名称和rand,系统就知道你到底要找那个了。注意:1.namespace只能定义在全局。

2024-09-29 16:33:07 382

原创 归并的递归和非递归排序

从中间将一整个数组分成两个数组,假设这两个数组已经完成了排序,那么设立一个新的数组,取两个数组各自第一个数据进行比较,那个数组的数据小就放入这个新建的数组,然后再重新在这个数组取数,再和另外一个数组原来取的数进行比较,那个小那个就放入这个新建的数组,直到有一个数组的数被取完,那么另外一个数组的全部数据都将依次放入新建的组,再将新建的数组的数据mencpy到原数组中就完成了排序,那么要怎么使两边的数组都是有序的呢???请看VCR。

2024-09-27 15:16:42 234

原创 数组快排的四种方法

如上图所示数组第一个数值为key,设立两个指针L和R从数组两边向中间移动,右边指针先移动,如果右边指针指向比key小的数值那么key继续向中间移动,直到指向的数值比key要大停止。左边指针在右边指针停止后移动,如果指向了比key数值小的那么继续向中间移动,直到指向比key要大或者与R指针指向的位置相同停下。再左边指针停下后如果L指针和R指针没有重合那么交换L和R指向位置的数据,如果L指针和R指针重合那么交换key和R或L指针指向的数据。这样在key左边的数据就比key小在key右边的数据就比key要大。

2024-09-27 14:41:02 195

原创 数组插入排序和希尔排序

从数组第一个数开始,加入数组前面的一个数,将加入的数与前面的比较如果,如果这个数比前面的数要小,这两个数的数值交换,如果比前面的数值要大那么就停止交换。将数组下一个数加入到其中继续进行比较交换。一直到数组里没有数据可以进行交换那么这个排序就完成了。

2024-09-27 12:30:41 128

原创 数组选择排序

选择排序的实现条件就是设置两个指针(次指针不是数据类型的指针而是int类型的值指向数组的下标)两个指针从最左端开始向右遍历,遍历结束一个指针指向该数组最大的值一个指针指向数组最小的值,将最大的值与与数组最右端的数据交换,将最小的值与数组最左端数据交换。当,max指向数组最左端时,我们将min指向的值与最右端的值交换,再将最右端的值与最左端的值交换,这样便修复了BUG。当出先这种情况时我们需要设立一个特殊情况时的特殊处理。一直到最右端和最左端都是同一个数组元素停止操作。将剩下的数组循环上述操作。

2024-09-26 20:21:52 154

原创 取一个文件中最大的k个值(运行内存有限)

这时我们可以开辟一个大小为k的数组 将文件开头的数据放入数组中 将数据转化成小堆 所以数组第一个数据就是它所有数据中最小的数据 再将文件后面的数据 和数据比较 如果比数据第一个数据大 那么将这个数据移到数组第一个位置中 再变成小堆 再进行比较 再变小堆 一直持续到 文件数据被遍历完 这时 数组中的数据就是 文件中最大的k个数。我们只能利用10kb的运行空间去取一个有上万个数据甚至上亿个数据的文件时。如果使用冒泡排序和堆排序会很难实现。

2024-09-19 11:55:11 214

原创 堆排序(向下调整)

选中一个数据将它和自己直接连接的上面那个数据比较如果最上面那个数据大小小于自己 那么交换位置 交换位置继续和上面那个数据进行比较 直到遇到比自己大的数据停止交换或当自己位于最顶端时停止交换。向上排序函数的参数有两个 一个是数组的地址(堆)一个是要进行排序的位置hp是堆的地址 i是要进行排序的位置那么现在再来到2.用向上排序函数实现堆排序。

2024-09-18 19:56:18 246

原创 堆排序(向下调整)

再将堆顶最大的那个数和最后一个位置的数进行交换,再将剩下的数据排序成大堆,再将堆顶数据和堆最后一个数据交换,循环这样的操作一直到剩下最后一个数,便完成了排序。将二叉树构建成一个大堆使最顶端的数据是最大值,再将最顶端的数据和最后一个数据交换后,最后一个数据不动始终不变,将剩余的数据继续进行上面的思路一直到排完为止。这个函数可以将二叉树里某个位置的数据向下调整,如果这个数据的下面那个数据值比它大,那么这两个数据交换位置,一直到这个数据下面的值比它要小停止,比如我们随机创建一个数组。而堆排序的的思路就是。

2024-09-17 15:53:10 131

原创 设计循环队列

循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。

2024-09-16 13:46:09 323

原创 用两个队列实现栈

用队列实现栈首先要建立两个队列,通过这两个队列的出入数据实现栈的出入数据以上就是队列的实现代码 放在上面供大家观看 这是我们用来实现栈的工具。

2024-09-16 12:11:04 303

原创 用两个栈实现队列

两个链表实现队列

2024-09-16 11:39:35 290

原创 栈:括号匹配问题

将栈顶字符比较如果匹配删除栈顶字符继续遍历字符串遇到右括号就放入栈顶遇到左括号就比较。如果一开始遇到的就是左括号那么结束遍历返回false。将字符串S中的字符依次放入栈中如果遇到。假如所有括号都在字符串S中。

2024-09-12 23:23:41 155

原创 环形链表问题

我们知道快指针fast走的路程是slow的两倍 假设fast比slow多走了n圈。所以我们可以在fast和slow相遇位置设置一个节点meet。2.链表中是否存在环形结构并且返回开始入环时第一个节点。当meet和head相遇时所在节点为进入环的节点。meet和head同时从当前位置移动每次走一步。快慢指针fast和slow相遇点是meet。只有通过计算我们才能得出思路!这是一个需要计算的题目。首先这种题目我们要想到两个快慢指针。1.链表中是否存在环形结构。入环节点和meet相距N。让我们看上面那个图像。

2024-09-12 22:53:22 297

原创 c语言冒泡排序法

通过这样的方法每次比较虽然不能保证每个数都按从小到大排序好,但能使数组中最大的数排在最后,再缩短数组进行这样排序能使数组每个数都能按从小到大进行排序。

2024-01-19 16:33:13 331 1

原创 X型图形的打印

多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。通过此条件再在此条件外创建一个for加for的循环嵌套。/部分当行和列相加等于scanf输入的值减去1打印*我们通过用printf和scanf来进行绘画。我我们可以创建一个与条件来进行判定。一个for表示行,一个for表示列。我们可以将此图形分开来进行绘画。\部分当行和列相等时进行打印*本题我们用“*”来打印X图形。其他情况一律打印空格。

2024-01-17 20:02:16 383

空空如也

空空如也

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

TA关注的人

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