加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据结构测试代码

发布时间:2020-12-15 04:58:04 所属栏目:百科 来源:网络整理
导读:1.二进制转化非递归 2.二进制转化递归 3.斐波那契递归 4.斐波那契非递归 5.大数加法 6.直接插入排序 7.快速排序 8.简单选择排序 1.二进制转化非递归 #include int main() { int j,i = 0; int m,a[100]; scanf("%d",m); while (m) { i++; a[i] = m % 2; m /=

1.二进制转化非递归

2.二进制转化递归

3.斐波那契递归

4.斐波那契非递归

5.大数加法

6.直接插入排序

7.快速排序

8.简单选择排序

1.二进制转化非递归

#include

int main()

{

int j,i = 0;

int m,a[100];

scanf("%d",&m);

while (m)

{

i++;

a[i] = m % 2;

m /= 2;

}

for (j=i;j>=1;j--)

printf("%d",a[j]);

printf("n");

return 0;

}

2.二进制转化递归?

#include

void fun(int a)

{

int b = a % 2;

if (a<2)

printf("%d",a);

else

{

a /= 2;

fun(a);

printf("%d",b);

}

}

int main()

{

int m;

scanf("%d",&m);

fun(m);

printf("n");

return 0;

}

3.斐波那契递归?

#include

int fun(int m)

{

if (m==1 || m==2) return 1;

else return fun(m-1) + fun(m-2);

}

int main()

{

int f;

scanf("%d",&f);

int ans = fun(f);

printf("%dn",ans);

return 0;

}

4.斐波那契非递归?

#include

int main()

{

int ans,i,k;

int t1 = 1,t2 = 1;

scanf("%d",&k);

if (k==1 || k==2)

ans = 1;

else

{

for (i=3;i<=k;i++)

{

ans = t1 + t2;

t1 = t2;

t2 = ans;

}

}

printf("%dn",ans);

return 0;

}

?5.大数加法

#include

#include

char s1[100],s2[100];

int a[100],b[100];

int main()

{

int i,j,l,l1,l2;

scanf("%s %s",s1,s2);

l1 = strlen(s1);

l2 = strlen(s2);

if (s1[0]=='0' && s2[0]=='0')

printf("0n");

else

{

for (i=l1-1,j=0;i>=0;i--,j++)

a[j] = s1[i] - '0';

for (i=l2-1,j++)

b[j] = s2[i] - '0';

l = l1 > l2 ? l1 : l2;

for (i=0;i

{

a[i] += b[i];

if (a[i]>9)

{

a[i] -= 10;

a[i+1]++;

}

}

while (!a[l]) l--;

for (;l>=0;l--)

printf("%d",a[l]);

printf("n");

}

return 0;

}

6.直接插入排序?

#include

int n,a[1000];

void SORT()

{

int i,j;

for (i=2;i<=n;i++)

if (a[i]

{

a[0] = a[i];

a[i] = a[i-1];

for (j=i-2;a[0]

a[j+1] = a[j];

a[j+1] = a[0];

}

}

int main()

{

scanf("%d",&n);

for (int i=1;i<=n;i++)

scanf("%d",&a[i]);

SORT();

for (int i=1;i<=n;i++)

printf("%d ",a[i]);

printf("n");

return 0;

}

7.快速排序?

#include

int a[1000];

int partsort(int low,int high)

{

a[0] = a[low];

int t = a[0];

while (low

{

while (low=t) high--;

a[low] = a[high];

while (low

a[high] = a[low];

}

a[low] = a[0];

return low;

}

void qsort(int low,int high)

{

if (low

{

int t = partsort(low,high);

qsort(low,t-1);

qsort(t+1,high);

}

}

int main()

{

int n,i;

scanf("%d",&n);

for (i=1;i<=n;i++)

scanf("%d",&a[i]);

qsort(1,n);

for (i=1;i<=n;i++)

printf("%d ",a[i]);

printf("n");

return 0;

}

8.简单选择排序?

#include

int a[1000];

void SORT(int n)

{

int i,j;

for (i=1;i<=n-1;i++)

{

int k = i;

for (j=i+1;j<=n;j++)

if (a[j]

k = j;

if (k!=j) swap(a[i],a[k]);

}

}

int main()

{

int n,&a[i]);

SORT(n);

for (i=1;i<=n;i++)

printf("%d ",a[i]);

printf("n");

return 0;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读