各种算法的实现

源代码在线查看: suanfa.txt

软件大小: 3 K
上传用户: cal04
关键词: 算法
下载地址: 免注册下载 普通下载 VIP

相关代码

				
				 
				合并排序 
				#include 
				#include 
				#include 
				using namespace std; 
				#define SIZE 1000 
				void Merge(int buff[],int ary[],int bgn,int q,int end){//局部排序 
				int i,j,bn=bgn; 
				for(i=bgn,j=q+1;i				{ 
				    if(ary				    { 
				        buff[bn++]=ary[j]; 
				        ++j; 
				    } 
				        else 
				    { 
				        buff[bn++]=ary; 
				        ++i; 
				    } 
				} 
				while(i				buff[bn++]=ary; 
				//剩下元素追加尾部 
				
				while(j				buff[bn++]=ary[j++]; 
				bn=bgn; 
				while(bn				{ 
				    ary[bn]=buff[bn];//回归给原数组 
				    bn++; 
				} 
				
				} 
				
				void Mergesort(int buff[],int ary[],int bgn,int end){//主排序函数 
				int q; 
				if(bgn				{ 
				q=(bgn+end)>>1;//非单个元素继续分组 
				Mergesort(buff,ary,bgn,q); 
				Mergesort(buff,ary,q+1,end); 
				Merge(buff,ary,bgn ,q,end); 
				} 
				} 
				
				
				int main(){//测试 
				    int i,ary[SIZE],buff[SIZE]; 
				    printf("input 10 numbers :\n");   
				    for(i=0;i				    scanf("%d",&ary); 
				    for(i=0;i				    printf("%d,",ary); 
				    printf("\n"); 
				    Mergesort(buff,ary,0,9); 
				     
				    for(i=0;i				    printf("%d,",ary); 
				    printf("\n"); 
				   
				return 0; 
				} 
				
				冒泡排序 
				#include 
				#include 
				using namespace std; 
				void main() 
				{ 
				int a[10]; 
				int i,j,t; 
				printf("input 10 numbers :\n"); 
				for(i=0;i				   scanf("%d",&a); 
				   printf("\n"); 
				   for(j=0;j				     for(i=0;i				     if(a>a) 
				       {t=a;a=a;a=t;} 
				     printf("the sorted numbers:\n"); 
				     for(i=0;i				     printf("%d ",a); 
				     getchar(); 
				     } 
				
				选择排序 
				#include 
				#include 
				using namespace std; 
				void main() 
				{ 
				int num[10];int i,j,temp; 
				printf("Please input 10 numbers:\n"); 
				for(i=0;i				scanf("%d",&num); 
				for(i=0;i				for(j=i+1;j				if(num[j]				{temp=num; 
				num=num[j]; 
				num[j]=temp; 
				} 
				printf("The sorted numbers:\n"); 
				for(i=0;i				printf("%4d",num); 
				getchar(); 
				} 
				
				插入排序 
				#define N 10 
				#include"stdio.h" 
				#include 
				using namespace std; 
				void main() 
				{ int i,j,k,t,a[N]; 
				printf("Please input %d numbers:\n",N); 
				for(i=0;i				scanf("%d",&a); 
				for(i=1;i				{ 
				   for(j=0;j				   {if(a[j]>a) 
				    {t=a; 
				     for(k=i;k>j;k--) 
				     a[k]=a[k-1]; 
				     a[j]=t; 
				    } 
				   } 
				} 
				printf("small to big order:\n"); 
				for(i=0;i				printf("%-5d",a); 
				printf("\n"); 
				getchar(); 
				} 
				
				蛮力法字符串匹配 
				#include"stdio.h" 
				#include 
				using namespace std; 
				int bfsm(char t[],char p[],int n,int m) 
				{ 
				int i,j; 
				for(i=0;i				{ 
				j=0; 
				while(j				{ 
				j++;} 
				if(j==m) 
				return i+1; 
				} 
				return -1; 
				} 
				
				void main() 
				{ int k,n,m; 
				char t[10],p[3]; 
				
				printf("Please input string t:"); 
				//for(i=0;i				//scanf("%c",t); 
				cin>>t; 
				n=strlen(t); 
				printf("Please input string p:"); 
				cin>>p; 
				m=strlen(p); 
				//for(i=0;i				//scanf("%c",p); 
				k=bfsm(t,p,n,m); 
				if(k==-1) 
				printf("没找到匹配字符!"); 
				else 
				printf("匹配字符位置:%d",k); 
				printf("\n"); 
				getchar(); 
				}   
				
				上一篇 下一篇 返回日志列表 标签(Tags):ary printf buff int i++本文链接: 复制 签名档
				做自己想做的,多些快乐少些烦恼!!  
				评论列表想第一个看到日志抢沙发?
				QQ空间温馨提示:腾讯官方不会以任何留言方式向您发布中奖信息。请勿轻信留言中的中奖信息,更不要拨打陌生电话及向陌生帐户汇款,谨防受骗!识别更多网络骗术,请点击:腾讯反骗术帮助中心。上一页 1 下一页转到  页确定发表评论共1篇评论,第1页/共1页
				取消批量删除批量删除全选删除
				0芋头 芋头 芋头  
				
				 发纸条 加好友 送礼物回复 | 引用 | 举报 | 删除 1楼 芋头 2009年4月12日 22时6分59秒不错,继续努力。  
				 
				
				上一页 1 下一页转到  页确定共1篇评论,第1页/共1页
				
				使用签名档匿名评论发表评论
				点击这里发表评论,如果您要显示签名档,请点击“设置”并勾选“使用签名档”
				设置   
				使用签名档       道具:请选择道具隐身草彩虹炫天使之爱        悄悄话 | (以小纸条形式发送)   查看今日免费发送数量
				
				通知到好友信息中心(该评论可显示在QQ好友及关注我的友人的信息中心)
				
				确定马上开通空间,体验权限日志、私密记事本等全新日志体验!
				上一篇  下一篇  返回日志列表
				loading......			

相关资源