📄 suanfa.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 + -