⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 suanfa.txt

📁 各种算法的实现
💻 TXT
字号:

 
合并排序 
#include<stdio.h> 
#include<math.h> 
#include<iostream> 
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<q+1&&j<end+1;) 
{ 
    if(ary<ary[j]) 
    { 
        buff[bn++]=ary[j]; 
        ++j; 
    } 
        else 
    { 
        buff[bn++]=ary; 
        ++i; 
    } 
} 
while(i<=q) 
buff[bn++]=ary; 
//剩下元素追加尾部 

while(j<=end) 
buff[bn++]=ary[j++]; 
bn=bgn; 
while(bn<end+1) 
{ 
    ary[bn]=buff[bn];//回归给原数组 
    bn++; 
} 

} 

void Mergesort(int buff[],int ary[],int bgn,int end){//主排序函数 
int q; 
if(bgn<end) 
{ 
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<10;i++) 
    scanf("%d",&ary); 
    for(i=0;i<10;i++) 
    printf("%d,",ary); 
    printf("\n"); 
    Mergesort(buff,ary,0,9); 
     
    for(i=0;i<10;i++) 
    printf("%d,",ary); 
    printf("\n"); 
   
return 0; 
} 

冒泡排序 
#include<stdio.h> 
#include<iostream> 
using namespace std; 
void main() 
{ 
int a[10]; 
int i,j,t; 
printf("input 10 numbers :\n"); 
for(i=0;i<10;i++) 
   scanf("%d",&a); 
   printf("\n"); 
   for(j=0;j<=8;j++) 
     for(i=0;i<=9-j;i++) 
     if(a>a) 
       {t=a;a=a;a=t;} 
     printf("the sorted numbers:\n"); 
     for(i=0;i<10;i++) 
     printf("%d ",a); 
     getchar(); 
     } 

选择排序 
#include<stdio.h> 
#include<iostream> 
using namespace std; 
void main() 
{ 
int num[10];int i,j,temp; 
printf("Please input 10 numbers:\n"); 
for(i=0;i<10;i++) 
scanf("%d",&num); 
for(i=0;i<10;i++) 
for(j=i+1;j<10;j++) 
if(num[j]<num) 
{temp=num; 
num=num[j]; 
num[j]=temp; 
} 
printf("The sorted numbers:\n"); 
for(i=0;i<10;i++) 
printf("%4d",num); 
getchar(); 
} 

插入排序 
#define N 10 
#include"stdio.h" 
#include<iostream> 
using namespace std; 
void main() 
{ int i,j,k,t,a[N]; 
printf("Please input %d numbers:\n",N); 
for(i=0;i<N;i++) 
scanf("%d",&a); 
for(i=1;i<N;i++) 
{ 
   for(j=0;j<i;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<N;i++) 
printf("%-5d",a); 
printf("\n"); 
getchar(); 
} 

蛮力法字符串匹配 
#include"stdio.h" 
#include<iostream> 
using namespace std; 
int bfsm(char t[],char p[],int n,int m) 
{ 
int i,j; 
for(i=0;i<=n-m;i++) 
{ 
j=0; 
while(j<m&&p[j]==t) 
{ 
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<10;i++) 
//scanf("%c",t); 
cin>>t; 
n=strlen(t); 
printf("Please input string p:"); 
cin>>p; 
m=strlen(p); 
//for(i=0;i<3;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......

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -