Discuz! Board

 找回密码
 立即注册
查看: 485|回复: 1

12.26 冒泡作业

[复制链接]

54

主题

66

帖子

574

积分

高级会员

Rank: 4

积分
574
发表于 2022-12-26 16:54:01 | 显示全部楼层 |阅读模式
[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
#include <time.h>
using namespace std;
int a[1000],n,s_max=0,s_min=0,flag=0;
void start()
{
    srand(time(0));
	cin>>n;
	for(int i=0;i<n;i++)
	{
		a[i]=rand()%100;
		printf("%d ",a[i]);
	}
	printf("\n");
}
void mp_min()
{
	for(int i=0;i<n;i++)
	{
		flag=0;
		for(int j=0;j<n-i-1;j++)
		{
			if(a[j]<a[j+1])
			{
				swap(a[j],a[j+1]);
				flag=1;
				s_min++;
			}
		}
		if(flag==0)break;
	}
}
void print()
{
	printf("\n");
	for(int i=0;i<n;i++)
	{
		printf("%d ",a[i]);
	}
	printf("最少:%d",s_min);
}
int main()
{
	start();
	mp_min();
	print();
	return 0;
}
回复

使用道具 举报

719

主题

906

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11898
发表于 2023-1-5 23:29:08 | 显示全部楼层
[C] 纯文本查看 复制代码
#include <bits/stdc++.h>
#include <time.h>
using namespace std;
int a[1000],n,s_max=0,s_min=0,flag=0;
void start()
{
    srand(time(0));
    cin>>n;
    for(int i=0;i<n;i++)
    {
        a[i]=rand()%100;
        printf("%d ",a[i]);
    }
    printf("\n");
}
void mp_min()
{
    for(int i=0;i<n;i++)
    {
        flag=0;
        for(int j=0;j<n-i-1;j++)
        {
            if(a[j]<a[j+1])
            {
                swap(a[j],a[j+1]);
                flag=1;
                s_min++;//数据交换次数,正确 
            }
        }
        //这里最好增加上比较轮次的计数,或者直接使用i计数轮次并输出 
        if(flag==0)break;
    }
}
void print()
{
    printf("\n");
    for(int i=0;i<n;i++)
    {
        printf("%d ",a[i]);
    }
    printf("最少:%d",s_min);
}
int main()
{
    start();
    mp_min();
    print();
    return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-7-18 11:18 , Processed in 0.060206 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表