当前位置: 首页 > news >正文

广州 济南网站建设公司 网络服务江苏网站备案流程图

广州 济南网站建设公司 网络服务,江苏网站备案流程图,企业营销网站的建设,外贸网站域名能用cn做后缀吗题目:有 N 个瓶子,编号 1 ~ N,放在架子上。 比如有 5 个瓶子: 2 1 3 5 4 要求每次拿起 2 个瓶子,交换它们的位置。 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的情况&#x…

题目:有 N 个瓶子,编号 1 ~ N,放在架子上。

比如有 5 个瓶子:

2 1 3 5 4

要求每次拿起 2 个瓶子,交换它们的位置。

经过若干次后,使得瓶子的序号为:

1 2 3 4 5

对于这么简单的情况,显然,至少需要交换 2 次就可以复位。

如果瓶子更多呢?你可以通过编程来解决。

输入描述

输入格式为两行:

第一行: 一个正整数 N (N<104), 表示瓶子的数目

第二行: N个正整数,用空格分开,表示瓶子目前的排列情况。

输出描述

输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。

输入输出样例

示例

输入

5
3 1 2 5 4

输出

3

解题思路+代码:

代码:

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {/**思路:冒泡排序1.读取输入的N个瓶子存放进数组2.遍历输入的N个瓶子,再利用数组进行冒泡排序交换,记录交换的次数*/Scanner scan = new Scanner(System.in);int n = scan.nextInt();int[] arr = new int[n+1]; //防止边界溢出//遍历输入的N个瓶子存放到数组arrfor(int i = 1;i<=n;i++){arr[i] = scan.nextInt();}//记录需要交换的次数int count = 0;//遍历输入的N个瓶子for(int i = 1 ;i<=n;i++){while(arr[i] != i) {int temp = arr[i];//辅助变量//进行交换arr[i] = arr[temp];arr[temp] = temp;count++;}}System.out.println(count);scan.close();}
}

 总结:这道题需要理解题目中的两两交换排序就是冒泡排序,知道是冒泡排序的解法调动学过的数组知识,在理清交换的逻辑就可以很好地解答该题了。

http://www.dtcms.com/a/418978.html

相关文章:

  • Ceph 分布式存储学习笔记(一):介绍、部署与集群配置(上)
  • 先做他个天猫网站产品外观设计图片
  • Accelerate 与 torchrun 分布式训练LLM对比
  • 建设部网站哪里可以报名考监理员优化优化
  • 农家乐怎么做网站上海app开发网站建设
  • 海口建站价格网站建设的物流
  • Leetcode 26. 删除有序数组中的重复项
  • Linux 的文本编辑器vim食用指南
  • 开发实战:从0到1实现Chrome元素截图插件的完整过程
  • ue编辑器视口鼠标消失的问题
  • 【数据结构】多项式的基本运算
  • 在ubuntu下载企业微信
  • 基于Chrome140的FB账号自动化——需求分析环境搭建(一)
  • MCP:cursor、claude code接入chrome-devtools-mcp。
  • 台风“桦加沙”袭击大,盈电智控物联网漏水检测系统为关键场所筑牢“隐形堤坝”!
  • 北京比较好的互联网公司晋中seo排名
  • 高通平台WiFi学习---深入了解 WLAN host crash调试
  • 在 Ubuntu 上可以用几个常用命令查看系统运行情况(内存、CPU、硬盘占用等
  • 子路由器如何设置 路由器LAN-WAN级联的设置方法
  • 【Ubuntu】请问,『kill -9』跟『kill -15』有区别吗?
  • 科网站建设免费查公司的网站
  • SCDN-保护网站安全的有效方案
  • Go 的跨平台编译详解
  • docker命令总结
  • 2、user-service 企业级代码目录结构规范
  • 网站开发的自适应wordpress 万能搜索页
  • Linux设置定时作业执行node.js脚本
  • XXE - 实体注入(xml外部实体注入)
  • MySQL查询性能优化核心知识点总结
  • 自然语言处理(03)