![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
莫秃
没有人比我更懂bug
展开
-
常见的七大排序(冒泡,插入,选择,归并,堆,快速,希尔)
七大排序一:直接插入排序二:希尔排序三:选择排序四:堆排序五:冒泡排序六:快速排序七:归并排序排序复杂度总结一:直接插入排序原理:整个区间被分为:有序区间无序区间每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入//插入排序public static void inSort(int[] n){ for (int i = 1; i < n.len...原创 2020-04-14 20:32:44 · 258 阅读 · 0 评论 -
数据结构------优先级队列(堆)
堆概念:堆逻辑上是一棵完全二叉树堆物理上是保存在数组中满足任意结点的值都大于其子树中结点的值,叫做大堆,或者大根堆,或者最大堆反之,则是小堆,或者小根堆,或者最小堆堆的基本作用是,快速找集合中的最值如何构建一个堆呢?首先建堆需要借助一个调整的过程,根据需要向上或者向下调整根节点的位置,然后从第一个非叶子节点开始进行调整,就可以得到一个堆.代码实现: //从最后一个非叶子节...原创 2020-04-13 18:06:02 · 159 阅读 · 0 评论 -
数据结构------二叉树
二叉树概念一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。二叉树特点:每个结点最多有两棵子树,即二叉树不存在度大于 2 的结点.二叉树的子树有左右之分,其子树的次序不能颠倒.两种特殊的二叉树完全二叉树: 完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个...原创 2020-04-08 20:53:47 · 127 阅读 · 0 评论 -
不允许创建临时变量,交换两个数的内容.C语言表示
这个问题难点在于算法,不创建新的临时变量交换两个数.只有把两个数相加,赋值给其中一个再把另一个减去如此一来就实现了交换数值.核心算法a=a+b b=a-b a=a-b代码如下:#include<stdio.h>int main() { int a=1,b=2; printf("交换前a=%d,b=%d\n", a, b); a = a + b; b = a - b;...原创 2019-11-12 18:15:25 · 104 阅读 · 0 评论 -
求两个数的最大公约数(辗转相减法)
更相减损法:也叫更相减损术,是出自《九章算术》的一种求最大公约数的算法,它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合。《九章算术》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”翻译成现代语言如下:第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;...原创 2019-11-12 18:01:54 · 10267 阅读 · 0 评论 -
将10个数按从大到小输出。
如题这种排列大小的问题都可以用冒泡排序法,讲大的数或者小的数一个一个比较之后向上移动,从而达到排列的效果.代码如下#include<stdio.h>int main() { int i, j,x; char a[10] = { 3,8,1,5,6,7,2,9,4,0}; for (j = 0; j < 10; j++) { for (i = 0; i < 1...原创 2019-11-12 17:16:07 · 1445 阅读 · 0 评论 -
求10 个整数中最大值。
先初始化一个变量,将数组中一个数复制给它,再让它与其他数比较,若有比它大的交换就把大的数赋值给max,一遍下来就可以找出max.代码很简单程序如下:#include<stdio.h>int main() { int max, i; char a[10] = { 2,8,4,6,7,0,5,3,1,9 }; max = a[0]; for (i = 0; i < 10...原创 2019-11-12 16:44:57 · 134 阅读 · 0 评论 -
给定两个整形变量的值,将两个值的内容进行交换。
问题很简单不做过多描述,加一个第三变量寄存一下即可.代码如下:#include<stdio.h>int main() { int a, b, c; a = 1; b = 2; printf("a=%d,b=%d\n", a, b); c = a; a = b; b = c; printf("交换后\n"); printf("a=%d,b=%d",a,b); r...原创 2019-11-12 16:20:23 · 98 阅读 · 0 评论 -
判断1000-2000年之中的闰年(c语言)
闰年是指能被4整除但不能被100整除的年份叫做闰年.因此这个代码实现只需要简单地加if判断语句,加上如上两个条件,在for循环下就可实现找出闰年,代码如下:#include <stdio.h>int main() { int x, y, z; for (x = 1000; x < 2001; x++) { if (x % 4 == 0 && x %...原创 2019-11-11 22:17:31 · 188 阅读 · 0 评论 -
输出乘法口诀表(c语言表达)
输出乘法口诀并不难,只需要定义三个变量x,y,z利用两个for循环即可,x*y=z;编程过程中发现难点在于怎么让乘法口诀自己排成表的形式,研究后发现只要当x=y是切换行就可以了,于是利用if语句即可解决这个问题,代码如下.程序:#include <stdio.h>int main() { int x, y, z; for (x = 1; x < 10; x++) { ...原创 2019-11-11 22:10:53 · 572 阅读 · 0 评论 -
打印100~200 之间的素数(c语言表达)
打印100~200 之间的素数首先弄清楚素数的概念:素数是除本身和1之外没有其他因数的一类数.判断一个数x是否为素数可判断在2到sqrt(x)是否有x的因子没有则x为素数,反之就不是素数.因此可以用c语言程序简单表示出来,程序如下:#include<stdio.h>#include<math.h>int main() { for (int x = 100; x...原创 2019-11-11 20:50:46 · 325 阅读 · 0 评论