java数组.day16(冒泡排序,稀疏数组)

冒泡排序

  1. 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序!

  2. 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。

  3. 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2)。

代码示例:

public class ArrayDemoe7 {public static void main(string[]args) {int[] a = {1,4,5,6,72,2,2,2,25,6,7};int[] sort = sort(a);//调用完我们自己写的排序方法以后,返回一个排序后的数组
​}public static int[]sort(int[ ]array){//临时变量int temp = 0;//外层循环,判断我们这个要走多少次;for (int i = 0; i < array.length-1;i++) {//内层循环,比价判断两个数,如果第一个数,比第二个数大,则交换位置for (int j = 0; j < array.length-1-i;j++) {if (array[j+1]>array[j]){temp = array[j];array[j] = array[j+1];array[j+1] = temp;}}}
return array;
)
​

稀疏数组

  1. 当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。‘

  2. 稀疏数组的处理方式是:

    1. 记录数组一共有几行几列,有多少个不同值

    2. 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模

如下图:左边是原始数组,右边是稀疏数组

在二维数组中其中大部分都是一样的数值,但存在一小部分数值不同时,挑出不同的组成稀疏数组

例如上图中[o]排的意思是该稀疏数组记录的是具有6行7列的二维数组,其中一共有8个不同的值,下面[1],[2],[3]...代表的意思,举例[1]:第0行,第3列的值是22。

代码示例:

public class Array {public static void main(String[] args) {//1.创建一个二维数组11* 1i0:没有棋子,1:黑棋2:白棋int[][]array1 = new int[11][11];array1[1][2] = 1;array1[2][3] = 2;//输出原始的数组System.out.println("输出原始的数组");for (int[] ints : array1) {for (int anInt : ints) {System.out.print( anInt+"\t" );}System.out.print1n();}//转换为稀疏数组保存System.out.print1n( "=====================");
//获取有效值的个数int sum = 0;for (int i = 0; i < 11; i++) {for (int j = 0; j < 11;j++) {if ( array1[i][j]!=0){sum++;}}}System.out. println("有效值的个数:"+sum) ;//2.创建一个稀疏数组的数组int[][]array2 = new int[sum+1][3];array2[0][0] = 11;//行数array2[0][1] = 11;//列数array2[0][2] = sum;//值
​//遍历二维数组,将非零的值,存放稀疏数组中int count=o;for (int i = e; i < array1 . length ; i++) {for (int j = o; j < array1[i].iength; j++) {if ( array1[i][j]!=o){count++;array2[count][0] = i;array2[count][1] = j;array2[countj[2] = array1[i][j];}}}//输出稀疏数组System.out.print1n("稀疏数组");for (int i = o; i < array2.length; i++) {System.out.print1n(array2[i][0]+""\t"+array2[i][1]+"\t”+array2[i][2]+"\t");
​}System. out.print1n( "=====================");System.out.println(“还原"");//1.读取稀疏数组int[][]array3 = new int[array2[0][0]][array2[0][1]];//2.给其中的元素还原它的值for (int i = 1; i < array2.length; i++) {array3[array2[i][0]][array2[i][1]] = array2[i][2];//3.打印System.out.println("输出还原的数组");for (int[] ints : array3) {for (int anInt : ints) {System.out.print(anInt+"\t");}System.out.println();}
​}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.Spring Boot框架整合

Spring Boot项目创建&#xff08;约定大于配置&#xff09; 2.1.3.RELEASE版本示例 idea创建 从官网下载&#xff08;https://start.spring.io/&#xff09;单元测试默认依赖不对时&#xff0c;直接删除即可 Web支持&#xff08;SpringMVC&#xff09; <dependency>&…

Collection与数据结构 链表与LinkedList(三):链表精选OJ例题(下)

1. 分割链表 OJ链接 class Solution {public ListNode partition(ListNode head, int x) {if(head null){return null;//空链表的情况}ListNode cur head;ListNode formerhead null;ListNode formerend null;ListNode latterhead null;ListNode latterend null;//定义…

见证历史:Quantinuum与微软取得突破性进展,开启了可靠量子计算的新时代!

Quantinuum与微软的合作取得了重大突破&#xff0c;将可靠量子计算带入了新的时代。他们结合了Quantinuum的System Model H2量子计算机和微软创新的量子比特虚拟化系统&#xff0c;在逻辑量子比特领域取得了800倍于物理电路错误率的突破。这一创新不仅影响深远&#xff0c;加速…

目标检测——监控下的汽车

一、重要性及意义 首先&#xff0c;车辆检测技术是保证视频监控系统正常运行的基础。通过监控摄像头实时获取的图像&#xff0c;可以自动检测出图像中的车辆&#xff0c;并进行车辆类型的分类和识别。这对于优化城市交通管理、实现智能交通系统具有重要意义。此外&#xff0c;…

【SQL Server的详细使用教程】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

【QT+QGIS跨平台编译】056:【pdal_lepcc+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal_lepcc介绍二、pdal下载三、文件分析四、pro文件五、编译实践一、pdal_lepcc介绍 pdal_lepcc 是 PDAL(Point Data Abstraction Library)的一个插件,用于点云数据的压缩。它基于 EPCC(Entwine Point Cloud Compression)算法,提供了对点…

51单片机入门之独立按键

目录 1.按键简介 2.独立按键控制LED亮灭 3.独立按键控制LED移位 1.按键简介 在生活中&#xff0c;我们常常会见到各种按键&#xff0c;我们的开发板上也有按键&#xff0c;就在左下角有四个按键&#xff0c;我们把它们叫做独立按键。 独立按键的原理比较简单&…

【机器学习】《机器学习算法竞赛实战》第7章用户画像

文章目录 第7章 用户画像7.1 什么是用户画像7.2 标签系统7.2.1 标签分类方式7.2.2 多渠道获取标签7.2.3 标签体系框架 7.3 用户画像数据特征7.3.1 常见的数据形式7.3.2 文本挖掘算法7.3.3 神奇的嵌入表示7.3.4 相似度计算方法 7.4 用户画像的应用7.4.1 用户分析7.4.2 精准营销7…

vscode-keil一起用

安装插件 1、C/C Extension Pack 2、Keil Assistant 配置 重启生效&#xff01;&#xff01;&#xff01; 下载安装 Mingw 下载链接&#xff1a; 添加环境变量&#xff1a; 注意确认&#xff01;&#xff01;&#xff01; 报错 gccC:\迅雷下载\MinGW\MinGW\bin…

力扣爆刷第111天之CodeTop100五连刷41-45

力扣爆刷第111天之CodeTop100五连刷41-45 文章目录 力扣爆刷第111天之CodeTop100五连刷41-45一、232. 用栈实现队列二、4. 寻找两个正序数组的中位数三、31. 下一个排列四、69. x 的平方根五、8. 字符串转换整数 (atoi) 一、232. 用栈实现队列 题目链接&#xff1a;https://le…

注解(Annotation)

10.1 注解概述 10.1.1 什么是注解 注解&#xff08;Annotation&#xff09;是从JDK5.0开始引入&#xff0c;以“注解名”在代码中存在。例如&#xff1a; Override Deprecated SuppressWarnings(value”unchecked”) Annotation 可以像修饰符一样被使用&#xff0c;可用于修饰…

ChatGPT 之赋能提示词工程

原文&#xff1a;Chatgpt Empowers Your Prompt Engineering with AI Tools 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 介绍 在当今这个时代&#xff0c;设计和人工智能工具对于企业在不断发展的市场中蓬勃发展至关重要。ChatGPT 为探索一系列可能性提供了机会&am…

中兴天机A31 A31PRO 5G zte A2122H te A2022H 解锁BootLoader root权限 教程magisk,原厂刷机包

zte A2122H P768A02 zte A2022H P875A02 中兴天机A31 A31PRO 5G zte A2122H te A2022H 解锁BootLoader root教程magisk&#xff0c;原厂刷机包 感谢 某大神支持&#xff0c;已经解锁root 刷了面具&#xff1b; 中兴天机A31 A31PRO 5G zte A2122H te A2022H 解锁BootLoad…

深入浅出 -- 系统架构之单体架构和微服务架构的区别

在软件开发中&#xff0c;架构设计是非常重要的一环。架构设计不仅决定了软件系统的性能、可维护性和扩展性&#xff0c;还直接关系到开发成本和项目进度。目前&#xff0c;主流的架构设计模式有两种&#xff0c;一种是单体架构&#xff0c;另一种是微服务架构。本文将详细介绍…

CVPR24_ArGue: Attribute-Guided Prompt Tuning for Vision-Language Models

Abstract 尽管软提示微调在调整视觉语言模型以适应下游任务方面表现出色&#xff0c;但在处理分布偏移方面存在局限性&#xff0c;通过属性引导提示微调&#xff08;Attribute-Guided&#xff0c;ArGue&#xff09;来解决这个问题 Contributions 与直接在类名之前添加软提示…

【Linux】Ubuntu 磁盘管理

准备一个U盘或者SD卡&#xff08;含读卡器&#xff09;&#xff0c;并将其格式化成 FAT32 格式&#xff0c;不要使用NTFS格式&#xff08;这是微软的专利&#xff0c;大部分Linux系统不支持&#xff09;和exFAT格式&#xff08;有的Linux系统也不支持&#xff09;。 如果Ubun…

递归算法讲解2

前情提要 上一篇递归算法讲解在这里 递归算法讲解&#xff08;结合内存图&#xff09; 没看过的小伙伴可以进去瞅一眼&#xff0c;谢谢&#xff01; 递归算法的重要性 递归算法是非常重要的&#xff0c;如果想要进大厂&#xff0c;以递归算法为基础的动态规划是必考的&…

关闭PyCharm中因双击Shift而跳出的搜索框

有时候老是多次按到shift而跳出一个搜索框&#xff0c;本来在编写代码&#xff0c;怎么突然就开始搜索了&#xff0c;非常的烦人。 其实这个搜索框叫做“随处搜索”。 关闭步骤 1、打开PyCharm的设置。 2、在设置-高级设置中勾选-禁用双击修改键快捷键即可。

idea改vm参数后没法重启

背景 Idea2023修改了编译器compiler内存&#xff0c;maven的run time内存&#xff0c;idea安装目录下idea64.exe.vmoptions选项的jvm内存参数后导致idea启动时没有任何反应&#xff0c;也没有任何日志输出 idea2023没法重启 导致idea2023没法重启的操作步骤如下 1.修改idea的…

Higgsfield AI: 对飙Sora打造个性化视频新浪潮,重塑社交媒体内容创作

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…