数据结构&算法
文章平均质量分 58
Keepower
这个作者很懒,什么都没留下…
展开
-
C语言贪吃蛇70行代码
#include <stdio.h>#include <Windows.h>#include <conio.h>#include <time.h>#define MAX_WIDE 50#define MAX_HIGH 16short dx = 1, dy = 0, randxy, score = 0;COORD coord;...原创 2012-03-19 10:18:11 · 81806 阅读 · 19 评论 -
浅谈排序算法(一)之冒泡排序
首先介绍的是,相对来说比较简单的冒泡排序。冒泡排序,其基本思想是(如果我们是要从小到大排序):用两个循环(暂且称为内循环和外循环吧),内循环中:从第1位开始依次比较相邻的两个数的大小,如果前一位比后一位大,则交换两个他们的值,一直比较到最后;这样一趟下来的话,那么最大的那个数就在最后那个位置了。一次内循环就可以选出一个数的正确位置。所以外循环的次数最多就是该排序数列的大小代码一:原创 2012-05-05 19:03:34 · 815 阅读 · 0 评论 -
浅谈排序算法(二)之选择排序
选择排序是比较好理解的,交换操作在0和(n-1)之间,比较次数O(n^2);其中交换次数最好情况是已排序,交换0次,最坏情况是逆序,交换n-1次,而冒泡排序最坏要交换n*(n-1)/2次。选择排序主要有两个循环,外循环控制未排序的项,而内循环扫描出剩下未排序中的最大值(或最小值)代码一:int comp_asc(int a, int b) //升序{ return a -原创 2012-05-14 12:27:36 · 649 阅读 · 0 评论 -
状态机处理文本
/***删除C/C++源代码中的注释*/#include int main( int argc, char *argv[] ){ //定义各种状态 enum{NONE,PRE_LINE,LINE,ALL,PREEND_ALL,ALL_END} state = NONE; char *fileinput, *fileoutput; FILE *fpinput, *原创 2012-05-14 21:33:00 · 864 阅读 · 0 评论 -
浅谈排序算法(三)之堆排序
堆排序主要思想:1.初始化数串成大顶堆(或小顶堆) 1.1 先初始化一个非叶节点的小子树为大顶堆(或小顶堆) 1.2 再初始化数串中的每个子树成大顶堆(或小顶堆)2.由步骤1中得到的堆顶即是当前未排序数串的最大值。由此继续循环得到下个最大值 堆排序与选择排序有点相似,都是先通过循环比较得到 未排序数串中的最大值,然后把它给已排序的数串中。但是选择排序中循环比较时会出原创 2012-05-23 22:35:42 · 797 阅读 · 0 评论