自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言入门——BFS图的广度优先遍历

本博客为考试服务,研究邻接表表示法下BFS的实现。图的定义以及邻接矩阵表示法,请参见涉及到的数据结构知识点:单链表、队列、图。

2024-01-25 19:08:50 573

原创 C语言入门——DFS图的深度优先遍历

注意,注意,这里是C语言入门

2024-01-22 11:07:45 1084

原创 C语言入门——一维数组和二维数组

以下的解释仅代表个人理解:我们在统计一组数据(如一个年级学生的期末成绩)时,我们往往需要将这组数据视作一个整体集中处理(比如遍历,排序,筛选),而不是将每个数据视作孤立的元素。我们可以使用一块连续的内存空间,将同一性质(这里就是数据类型)的元素储存在一起。这样就构成了一个元素序列。我们就将这个序列叫做数组。数组的声明与变量类似,需要先声明数组的数据类型,随后声明数组的名称和数据个数。int a[12];注意,数组的下标从0开始,a[12]包含a[0] ......a[11],没有a[12]。

2024-01-20 18:43:03 2484

原创 C语言入门——循环嵌套

其实循环嵌套没有什么新鲜的。你只需要理解循环体是什么就好。循环体就是程序在一定条件下反复执行的一段代码。而循环嵌套就是把某个循环塞到另一个循环的循环体里面去。a

2024-01-20 17:11:44 1703

原创 C语言入门——循环

遇到do......while语句时,先执行一次循环体,然后进行判断,如果为true则继续执行,false则跳出。两个分号之间是循环执行的判断条件, 第二个分号后面是一轮循环结束后对变量的更改。如果有多层循环,只能跳出break所在的最内层循环。显然,这个程序员永远无法脱单,因为在程序遇到continue时,后面的所有代码都不再执行而开启下一轮循环。for循环有一个小细节:在for循环内(包括括号内和循环体中)定义的变量,循环结束后会被销毁。在上面的代码中,当i是6的倍数时,直接跳出循环,循环不再执行。

2024-01-20 16:02:35 2323

原创 常用的排序算法(三)

然后继续从左到右,遍历整个链表数组,每个遍历到的数字都要按照十位上的数字加入bucket2中......这样,排序排到百位(最大数字的位数),数组就有序了。建好堆后,拿掉顶上的元素并放在最后面(选择排序的思路),这时堆的规模减少1,再调整成最大堆.再次拿掉顶上的元素,调整......这样直到最后堆的大小变为1,排序结束。在代码中,我们建堆和排序的过程中都要用到两层嵌套循环,外层的循环花费O(n)次,内层循环每次都要把数据翻番,所以时间复杂度为O(logn),所以堆排的时间复杂度为O(nlogn)。

2024-01-20 10:40:34 350

原创 常用的排序算法(二)

然后再后移i,找到11,前移j,找到0,互换......重复以上步骤,直到i,j相遇,然后交换arr[i]和主元,得到主元在中,小的在左边,大的在右边的序列,然后对主元两侧的部分递归(类似归并)。于是递归的深度为O(logn),同一深度的递归所处理的元素个数之和为O(n)(因为数组的大小是固定的,你只是把它拆成一块一块的,或者两半,或者四部分,等等,但是加起来还是那么多数。快速排序也借助了分而治之的思想,但快速排序是借助数组中的一个“主元”将数组中的元素拆分成为两部分:一部分比它小,另一部分比它大。

2024-01-19 21:25:50 1098

原创 常用的排序算法(一)

下面是本人学习排序算法时的总结和笔记,如有纰漏请多多指正。

2024-01-19 14:52:43 464 1

空空如也

空空如也

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

TA关注的人

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