自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用gdb定位段错误(Segmentation fault)

利用gdb定位段错误(Segmentation fault)标签:gdb调试 段错误 定位by 小威威用linux编程时,我们不时会遇到Segmentation fault,其实这就是段错误。引发段错误通常是数组越界,出现野指针,在一些作业网上可能也会显示runtime error,遇到这种情况我们该怎么办?难道一行一行看代码?显然要调试程序。这里我用的是gdb。apple@ubuntu:~/Des

2015-12-30 22:04:56 4297

原创 C语言:二叉树的中序遍历

C语言:二叉树的中序遍历标签: C语言 二叉树 中序遍历by 小威威这周作业题目是关于二叉树的中序遍历。中序遍历就是先读取左子树,再读取根结点,最后再读取右子树。在本题中的意思就是先输出左子树,再输出根结点,最后再输出右子树。题目如下:使用链表实现二叉树的构造并完成中序遍历。首先在头文件中定义结点结构体如下:typedef struct node {int x;struct node* left;

2015-12-30 09:33:16 5956

原创 C语言: 贪吃蛇异常退出

C语言: 贪吃蛇标签: C语言 贪吃蛇by 小威威这个贪吃蛇是作业来着,所以按照作业的要求做的,只在12*12的区域移动。在放代码之前,我要说一下我在做贪吃蛇的时候遇到的非常隐蔽的BUG:就是已经实现了贪吃蛇,在吃食物的时候,有的时候程序会出现异常,即贪吃蛇.exe遇到问题需要退出。其实,这主要是栈溢出导致的。那哪里栈溢出了呢?你可以检查一下生成随机食物那一部分代码,你是否用了递归? 如果有,那

2015-12-28 20:48:53 1783

原创 python: 快速排序

python: 快速排序标签:python 快速排序by 小威威今天我用python写了快排的排序,代码如下:#!/usr/bin/python3# Filename: quicksort.pydef quicksort(list, big, small): if big >= small: return key = big key2 = small

2015-12-23 21:41:04 602

原创 python: 选择排序

python: 选择排序标签:python 选择排序by 小威威下面是我用python写的选择排序。#!/usr/bin/python3# Filename: selectionsort.pylist = input().split()list = [int(i) for i in list]index = 0for i in range(len(list)-1, 0, -1):

2015-12-23 00:00:33 505

原创 C语言:选择排序

C语言:选择排序标签: C语言 选择排序by 小威威1.选择排序是什么?选择排序就是选择符合要求的数(一般是最大值或最小值),放到某个指定的位置。通过多次选择排位,进而完成数组内元素的排序。2.选择排序与冒泡排序的联系选择排序是冒泡排序的改进版,缩短了一定的时间。但是二者的原理都是一样的。这两种排序呢都是通过多轮操作实现排序的,每一轮都找出一个最大值或者最小值。冒泡排序是通过两两比较,两两交换实现

2015-12-22 22:18:58 886

原创 Python: 冒泡排序

Python: 冒泡排序标签: python 冒泡排序by 小威威刚刚用python写了个冒泡排序,果然比C语言简洁多了。#!/usr/bin/python3# Filename: Bubblesort2.py# split can turn the string into listlist = input().split()for i in range(0, len(list)-1):

2015-12-22 14:11:04 961 1

原创 C语言:快速排序

C语言:快速排序标签: C语言 快速排序by 小威威快速排序是运用二分思想进行排序的。在这里我就不讲解了,因为我找到了一篇写的很好的文章,现在分享给大家 快速排序。下面直接上我的代码:# include <stdio.h># include <stdlib.h>void quicksort(int *pArr, int pbig, int psmall);int main(void) {

2015-12-21 23:56:00 997

原创 python: 实现通讯录录入与查找的小脚本

python: 实现通讯录录入与查找的小脚本标签:python 通讯录 脚本by 小威威今天我用python写了两个小脚本,有了它们,我就可以实现通讯录的录入与查找,挺方便的。直接上代码: 脚本1:实现通讯录的录入。#!/usr/bin/python3# Filename: address_list.py# Call pickle module to store the message in t

2015-12-20 14:27:34 2063 2

原创 python: line=f.readlines() 后如何消除line中的'\n'

python: line=f.readlines() 后如何消除line中的’\n’标签:python readlines 消除‘\n’by 小威威1.问题今天我用open()语句创建txt后,在输出txt的内容时,发现了以下情况: 我的代码如下:#!/usr/bin/python3# Filename: establish_txt.pypoem = ''' I love

2015-12-20 10:09:50 24080 3

原创 C语言:定义指向二维数组的指针变量

C语言:定义指向二维数组的指针变量标签: C语言 二维数组 指针 by 小威威1.引入我们知道,要在函数中处理数组,一般要给函数传递指针。那么,对于一维int数组a[10],我们可以定义一个int *类型的指针变量p指向该数组。为什么这样定义?(按照我下面的理解方式有利于理解二维数组指针的定义)首先我们可以把这个一维数组中的10个元素当作10个数组,每个数组都只有一个元素,即指针在每一次移动,

2015-12-17 21:14:03 34732 4

原创 C语言:指针类型强制性转换

C语言:指针类型强制性转换标签:C语言 指针 强制性转换by 小威威1.引入我们知道,每个变量都有对应的地址,地址的距离即为地址之差。然而,地址类型不同,也就不能进行减法运算。假如,我现在要求double类型的变量a与int类型的变量b之间地址的距离(以字节作为单位)那么,该怎样实现这一操作呢?首先,我们知道,地址就是指针,指针就是地址,地址之差即为指针之差,因此不难想到,我们可以将指针转换成同一类

2015-12-17 20:35:10 2775

原创 C语言: 桶排序

C语言: 桶排序标签: C语言 桶排序by 小威威1.桶排序的介绍通俗地来说,桶排序就是将数组内的元素按照一定规则分配到一定数量的桶中,然后将各个桶内的数字进行分别排序,最后再将它们串起来。倘若我们要对很多数据进行冒泡排序,这种分桶的方式就大大提高了冒泡排序的执行效率。因为在处理较少的数据时,冒泡排序的执行效率并不亚于其他排序,甚至不亚于快排。然而,我今天要讲的桶排序是另一种类型。2.桶排序的思想

2015-12-15 20:31:23 4006 1

原创 python :逻辑行被分成两个物理行的解决方法

在python中,有时会出现逻辑行过长而需要两个物理行来实现。我们发现若不添加连接符,运行脚本时就会出现错误。因此,我们要在物理行间添加一个连接符以实现物理行的拼接。举个栗子: target = today + os.sep + now + '_' + \ string.replace(' ', '_') + '.zip'例子中,’\’就是我们所说的连接符,有了它,两个物理

2015-12-15 19:50:45 524

原创 python: 通过脚本实现重要文件的备份

python: 通过脚本实现重要文件的备份标签:python 脚本 备份by 小威威入门python两周了,我觉得自己应该用python来写一点小东西来玩一玩,所以我就写了一个实现重要文件备份的脚本,现在来展示我的代码。#!/usr/bin/python3# Filename: backup_ver3.py# Function: Help us backup some important

2015-12-15 19:42:08 1243

原创 放鸡蛋问题:相同元素分配到相同的空间

放鸡蛋问题:相同元素分配到相同的空间标签: C语言 放鸡蛋 相同元素 相同空间by 小威威1.引入放鸡蛋问题就是指将相同元素分配到相同空间这一类问题。具体问题就是:现在有n个相同的鸡蛋,m个相同的篮子,将这n个鸡蛋分配到篮子中,且篮子可以为空,问一共有多少种分配方法?我们的第一反应就是排列组合,而这一问题很类似于我们高中的隔板法。然而,如果你沿着这条思路,恐怕你就会走近进胡同却又浑然不知。因为隔板

2015-12-13 19:27:45 1632

原创 Python: 对象与参考

Python: 对象与参考标签: python 对象 参考by 小威威1.对象与参考“当你创建一个对象并给她赋一个变量的时候,这个变量仅仅参考那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储的那个对象的内存。这被称作名称到对象的绑定。”我的理解就是:我们所定义的变量名,其实就是一个对象,我们给这个对象所赋的值即为这个对象的参考,他不能代表变量本身。所以在给变量赋值时要注意: (

2015-12-13 12:03:54 494

原创 Python: 消除print的自动换行

Python: 消除print换行标签:python print \nby 小威威对于python2.X,要消除print的自动换行,只需在print尾部加上一个逗号”,”,但是这一做法在python3.X就不适用了,这是为什么呢?我们可以在交互式的环境下输入help(print),查询print的原理和使用方法。Help on built-in function print in modul

2015-12-11 19:49:35 22698 2

原创 C语言易错点:字符串的连接

C语言易错点:字符串的连接标签:C语言 字符串by 小威威利用字符数组对字符串的连接,有一点需要注意,不要忘了最后加’\0’,不要忘了在最后加’\0’,不要忘了在最后加’\0’。还有一个,字符数组的长度要记得包含’\0’噢。代码如下:char* join(char*a, int alength, char*b, int blength) { char *link; link = m

2015-12-09 22:15:13 733

原创 C语言:sizeof导致的Memory access violation

C语言:sizeof导致内存非法访问标签:C语言 sizeof 内存非法访问by 小威威1. 理解 sizeof我们知道,sizeof是用于计算字节数。然而,sizeof虽然会返回变量或数据类型所占的字节数,但它并不是一个函数。在C语言中,sizeof是一个操作符,它是在编译时运行的,而不是在程序进行时再计算字节数。这一点十分重要,十分重要,十分重要。2.实例int *pArr1, *pArr

2015-12-09 22:03:44 1457

原创 C语言:折半插入排序与二分查找

C语言:折半插入排序与二分查找标签:C语言 插入排序 二分法by 小威威这部分内容我也是自学的,在网上找资料的时候觉得别人写的文章很难理解,花了我不少时间。所以我写了这一篇博文,希望能帮助你们更好理解二分插入排序的思想。毕竟这篇文章是入门级的~1.什么是折半插入排序?折半插入排序(binary insertion sort)是对插入排序算法的一种改进,所谓排序算法过程,就是不断的依次将元素插

2015-12-08 14:18:57 5281

原创 递归:运用递归思想解题

递归:运用递归思想解题标签:C语言 递归by 小威威递归思想,就是通过不断调用自己直到满足某一条件为止。对于递归的定义,我在这里就不在阐述了,书上都写的很明白,最典型的例子就是“从前山上有一个老和尚和一个小和尚…”。下面我就直接上题目,通过题目来进一步了解递归,学习递归。典例1:给出一个数组,长度为n,编号为0~(n-1),接下来n行,第i行描述关于第i个位置的信息。每行先是一个数k表示从位置i

2015-12-07 12:14:42 1044

空空如也

空空如也

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

TA关注的人

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