c语言算法
三鹿吖
这个作者很懒,什么都没留下…
展开
-
快速排序
分治之快速排序#include <stdio.h>#include <stdlib.h>void swap(int a[],int i,int j){ int t; t=a[i]; a[i]=a[j]; a[j]=t;}int partition(int a[],int p,int q){ int x=a[p]; int i=p,j; for(j=p+1;j<=q;j++) { if(原创 2021-04-05 13:38:04 · 295 阅读 · 2 评论 -
# 递归算法之全排列
递归算法之全排列{1,2,3}的全排列如下:{1,2,3}、{1,3,2}、{2,1,3}、{2,3,1}、{3,2,1}、{3,1,2}由排列组合的知识可知n个元素的全排列有n!种排列方法解决方案解决方案1:可采用n层循环嵌套(代码冗长,容易出错,扩展困难)解决方案2: n!可分解为n*(n-1)!,而(n-1)!又可以分解为(n-1)*(n-2)!,从中不妨可以看出递归。编写一个程序,使用递归算法输出一个一维字符数组中所有字符的全排列,假设字符都不一样。例如{‘a’原创 2021-04-05 12:56:57 · 504 阅读 · 0 评论 -
2021-04-05
递归之汉诺塔#include <stdio.h>#include <stdlib.h>#include<math.h>int i;void move(int n,char a,char b){ printf("第%d步:%d号盘从%c柱移至%c柱\n",++i,n,a,b);}void han(int n,char a,char b,char c){ if(n>0) { han(n-1,a,c,b);原创 2021-04-05 12:26:20 · 141 阅读 · 0 评论 -
递归之青蛙跳台阶问题
递归之青蛙跳台阶问题思考:一只青蛙一次可以跳上1一级台阶,也可以跳上两级台阶。青蛙跳上第4级台阶有几种跳法?上面的问题想必大家应该都能得到答案那么青蛙在跳上n级台阶时应该有多少种方法呢?话不多说上代码#include <stdio.h>#include <stdlib.h>int fun(int n){ if(n==1) return 1;//当n等于1时只有一种跳法 else if(n==2) return 2;//当原创 2021-04-03 09:58:39 · 283 阅读 · 1 评论