![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机算法设计与分析
不会打代码的卷毛
这个作者很懒,什么都没留下…
展开
-
算法C语言快速排序
算法C语言快速排序int partition(int a[],int left,int right){ int first=left; int last=right; int key=a[first];//设置关键数字 if(left>=right) return 0; while(first<last){ //从右往左找到第一个比key小的数 ,将first与last调换位置 while(first<last&&a[last]>=key原创 2021-04-13 15:33:10 · 68 阅读 · 0 评论 -
算法c语言合并
算法c语言合并排序合并排序算法是用分治策略实现对n个元素进行排序的算法,其基本思想是:将待排序的元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最终将排好序的子集合合并成要求的排好序列的集合。算法MergeSort中的递归过程只是将待排序集合一分为二,直至待排序集合只剩下一个元素为止,然后不断合并两个排好序的数组,这需要用到合并函数。将数组a中相邻的两个元素两两配对,比较它们的大小,再用合并算法将他们合并起来。void MergeSort(int a[],int first,int la原创 2021-04-13 14:04:41 · 554 阅读 · 0 评论 -
算法二分查找C语言
分治策略二分查找C语言给定已排好序的n个元素a[n],从中找出一个特定的元素x。二分搜索算法的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与x作比较。如果x=a[n/2],则找到x,算法终止;如果x<a[n/2],则只在数组a的左半部分继续搜索x;如果x>a[n/2],则只在数组a的右半部分继续搜索x。#include<stdio.h>int BinarySearch(int a[],int x,int n){ int left=0,right=n-1原创 2021-04-01 22:51:59 · 148 阅读 · 0 评论 -
递归算法汉诺塔原理C语言
递归算法汉诺塔C语言**递归算法汉诺塔原理C语言**递归算法汉诺塔原理C语言#include<stdio.h>#include<string.h>void move(char x,char y){ printf("%c--%c ",x,y);}void hanoi(int n,char a,char b,char c){ if(n>0){ hanoi(n-1,a,c,b); move(a,b); hanoi(n-1,c,b,a); }} in原创 2021-04-01 10:06:59 · 148 阅读 · 0 评论