![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 55
夜空下划过的流星
这个作者很懒,什么都没留下…
展开
-
冒泡排序C语言实现
/**比较相邻的元素。如果第一个比第二个大,就交换他们两个。*对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。*针对所有的元素重复以上的步骤,除了最后一个。*持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。*/#include static int data[]={9, 2, 7, 19, 100, 97, 6原创 2013-06-08 14:21:49 · 484 阅读 · 0 评论 -
堆排序C语言实现
1.堆,堆实际上是一棵完全二叉树,堆分为大顶堆和小顶堆。大顶堆需要满足性质:Key[i]>=Key[2i+1]&&key>=key[2i+2];小顶堆需要满足性质:Key[i]即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。2.堆排序一般分为三个过程:建堆(初始化堆):从一个数组顺序读取元素,建立一个堆(完全二叉树)调整堆:将堆进行调整,使得堆顶为最原创 2013-06-09 18:45:14 · 788 阅读 · 0 评论 -
指针函数与函数指针的区别
一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值转载 2013-06-05 13:49:52 · 322 阅读 · 0 评论 -
直接插入排序C语言实现
/*对于9,2,7,19,100,97,63,208,55,78这组数,第一个数9前面没有,不做操作*当第一个数完后,剩下的数就是待排序的数,我们将要从除去9开始的书中选出一个插入到前面合适的位置,*拿到2后,放在tmp上,进行注释中的1处的代码,1处的代码就是通过循环找出这个合适的位置,*发现比tmp大的数,立即将该数向后移动一位(这样做的目的是:前面需要空出一位来进行插入),*最后通过原创 2013-06-05 17:38:47 · 560 阅读 · 0 评论 -
数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2013-06-05 15:39:31 · 309 阅读 · 0 评论 -
选择排序C语言实现
/**对比数组中前一个元素跟后一个元素的大小,*如果后面的元素比前面的元素小则用一个变量k来记住他的位置,*接着第二次比较,用下标为k的元素跟第三个元素进行比较,如果第三个元素比现在下标为k的元素要小,则把第三个元素的下标赋值给变量k,以此往复,*等到第一次循环结束的时候,我们应该找到了整个数组中最小的那个数的下标了,然后进行判断,*如果这个元素的下标不是第一个元素的下标,就让第一个元素原创 2013-06-06 10:26:06 · 691 阅读 · 0 评论 -
快速排序C语言实现
/**设置两个指针:i和j,分别指向第一个和最后一个,*i像后移动,j向前移动,选第一个数为标准(快排的关键就是这个“标准”的选取,一般选取第一个数为标准数),*从后面开始,找到第一个比标准小的数,互换位置,然后再从前面,*找到第一个比标准大的数,互换位置,第一趟的结果就是标准左边的都小于标准,*右边的都大于标准(但不一定有序),分成两拨后,继续递归的使用上述方法,最终可以达到有序状态!原创 2013-06-08 10:25:15 · 537 阅读 · 0 评论 -
归并排序C语言实现
归并操作的基本模式如下:分解:把一个问题分解成与原问题相似的子问题解决:递归的解各个子问题合并:合并子问题的结果得到了原问题的解分解,递归void mergeSort(int data[],int low,int high){ if (high > low) { int mid = (high + low)/2; mergeSort(data,原创 2013-07-17 11:03:41 · 541 阅读 · 0 评论