Java基础5一数组的常见应用算法

常用算法

1.冒泡排序:

原理:比较两个相邻的元素,将值大的元素交换至右端

示例:

public static void bubbleSort(int[] a) {int n = a.length;//总共进行n-1轮的比较for (int i = 1; i < n; i++) {for (int j = 0; j < n - i; j++) {if (a[j] > a[j + 1]) {//交换int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}
}

2.选择排序:

原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。

示例:

public static void selectionSort(int[] a) {        for(int i = 0; i < a.length - 1; i++) {// 做第i趟排序int m = i;for(int j = i + 1; j < a.length; j++){// 选最小的记录if(a[j] < a[m]){m = j; //记下目前找到的最小值所在的位置
            }}if(i != m){  //交换a[i]和a[m]int temp = a[i];a[i] = a[m];a[m] = temp;}}    
}

3.插入排序:

原理:从数组的第一个元素a[0]开始,将其后一个元素a[1]插入到a[0]的前面或者后面,接着继续这一过程。每次都是将a[i]插入到已经排序好的a[0]~a[i-1]中合适的位置

示例:

public static void insertSort(int[] a) {for (int i = 1; i < a.length; i++) {for (int j = i; j > 0; j--) {if (a[j] < a[j - 1]) {int temp = a[j];a[j] = a[j - 1];a[j - 1] = temp;} else {break;}}}
}

4.快速排序:

  • 快速排序是对冒泡排序的一种改进
  • 思想:在数组中找出适当的轴心,然后将数组一分为二,分别对左边与右边数组进行排序

二分查找

  • 前提条件: 已排序的数组中查找
  • 二分查找的基本思想是:

    – 首先确定该查找区间的中间点位置: int mid = (low+upper) / 2;

    – 然后将待查找的值与中间点位置的值比较:

    • 若相等,则查找成功并返回此位置。
    • 若中间点位置值大于待查值,则新的查找区间是中间点位置的左边区域。
    • 若中间点位置值小于待查值,则新的查找区间是中间点位置的右边区域。下一次查找是针对新的查找区间进行的。

示例:

public static int binarySearch(int[] a, int num) {int low = 0;                                  // 起点int upper = a.length - 1;              // 终点while (low <= upper) {int mid = (low + upper) / 2;     // 中间点if (a[mid] < num) {                  // 中间点的值小于要查找的值low = mid + 1;                    // 更改查找的起点为中间点位置后一位} else if (a[mid] > num) {        // 中间点的值大于要查找的值upper = mid - 1;                 // 更改查找的终点为中间点位置前一位} else {                                   // 中间点的值等于要查找的值return mid;                         // 返回该位置
        }}return -1;
}            

数组帮助类Arrays

  • java.util.Arrays 数组操作工具
public static void sort(int[] a);  //经过调优的快速排序法
public static int binarySearch(int[] a, int key); //使用二分搜索法

二维数组

  • Java并没有真正的多维数组,二维数组可以看成以数组为元素的数组。如:
int [][] a = { {1}, {4,5,6}, {7,8}};

 

转载于:https://www.cnblogs.com/smart-hwt/p/8184354.html

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

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

相关文章

使用Xtend构建Vaadin UI

今天&#xff0c;我决定向Xtend打个招呼。 我希望学习一些新的编程语言。 选择一个标准的清单并不多。 它必须是在JVM上运行的编程语言&#xff0c; 如果我不需要学习用于建筑应用的全新生态系统&#xff0c;那就太好了。 我已经检查了几个选项。 JVM的编程语言列表已不多了…

python 浏览器显示本地文件夹_浏览器读取本地文件

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云文件存储NAS是一个可共享访问&#xf…

p15页

给你一个n*n的01矩阵&#xff0c;只能够将0变成1&#xff0c;使得每个元素上下左右之和均是偶数&#xff0c; 比如 0 0 0 0 1 0 1 0 0>>>>1 0 1 0 0 0 0 1 0 一个转变了3步 多实例T 然后一个n&#xff08;n<15&#xff09; 表示n*n的矩阵 …

html 登陆sql server,jsp实现注册与登录页面+sqlsever2008

//index.jspString path request.getContextPath();String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/";%>登陆用户登陆用户名&#xff1a;密 码:注册新用户//Logon.jspString path req…

百度前端学院-基础学院-第四课

今天是第四天&#xff0c;进度可以&#xff0c;表扬一下自己。 今天的课程目标是&#xff1a;掌握 CSS 稍微复杂的一些选择器&#xff0c;还有背景&#xff0c;边框等一些 CSS 样式属性。 CSS背景&#xff1a; 背景色&#xff1a;background-color:gray; 背景图&#xff1a…

JUnit测试方法订购

直到4.10版为止的Junit都使用反射API返回的测试类中测试方法的顺序作为测试方法执行的顺序– Class.getMethods&#xff08;&#xff09; 。 引用getMethods&#xff08;&#xff09;api的Javadoc&#xff1a; 返回的数组中的元素未排序&#xff0c;并且没有任何特定顺序。 …

html中padding和margin的区别和用法与存在的bug消除

关于margin&#xff1a;在需要border外侧添加距离时。空白处不需要背景时。相连的两个部分的地方需要加外边的边距时使用。 关于padding&#xff1a;在需要border内侧添加距离时。空白处需要背景时。相连的两个部分的地方需要加内部的边距时使用。 IE6中双边距Bug&#xff1a; …

python发微信提醒天气冷了注意保暖_2019天气变冷的朋友圈说说 注意保暖的微信问候语...

1.天冷了&#xff0c;注意添加衣物&#xff0c;别着凉。可你还是着凉了。看你难受的样子&#xff0c;我的心&#xff0c;唉&#xff0c;只有一句话能表达&#xff1a;小样&#xff0c;你也有今天&#xff01;为了不让我得逞&#xff0c;你要注意身体哦。2.天气变凉要注意&#…

Fiddler抓包使用教程-QuickExec

转载请标明出处&#xff1a;http://blog.csdn.net/zhaoyanjun6/article/details/73468287 本文出自【赵彦军的博客】 在 Fiddler 中自带了一个 QuickExec 命令行&#xff0c;用户可以直接输入并快速执行脚本命令。 常见命令 help 打开官方的使用页面介绍&#xff0c;所有的命令…

自己整理的css3动画库,附下载链接

动画调用语法 animation: bounceIn 0.3s ease 0.2s 1 both; 按顺序解释参数&#xff1a; 动画名称 如&#xff1a;bounceIn 一周期所用时间 如&#xff1a;0.3s 速度曲线 如&#xff1a;ease 值 描述 linear 动画从头到尾的速度是相同的。 ease 默认。动画以低速开始&#xff0…

带有Spring的REST的ETag

1.概述 本文将重点介绍ETags-Spring支持&#xff0c;RESTful API的集成测试以及带有curl的使用场景。 这是关于使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web服务的系列文章的第9篇。 REST with Spring系列&#xff1a; 第1部分 – 使用Spring…

html5与css3都要学吗,前端要学css3吗?

前端要学css3&#xff1b;HTML5、CSS3是前端工程师必须要学会。现在移动端的兴起&#xff0c;导致web前端开发的技术逐变向css3和html5转变&#xff0c;所以css3一定要学。CSS3是CSS(层叠样式表)技术的升级版本&#xff0c;于1999年开始制订&#xff0c;2001年5月23日W3C完成了…

PHP中cookie和session的区别

1、cookie数据存放在客户的浏览器上&#xff0c;session数据放在服务器上。 2、cookie不是很安全&#xff0c;别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。 3、session会在一定时间内保存在服务器上。当访问增多&#xff0c;会比较占用你服务器…

ubuntu下anaconda3+pygame

有是很无语的地方&#xff0c;网上教程一堆&#xff0c;又是要下载什么包&#xff0c;然后又是什么依赖乱七八糟的整一堆。都不知道怎么想的 试了 sudo apt-get install python-pygame 这个是行不通的&#xff01;&#xff01;&#xff01;根本没有任何卵用 害我捯饬了半天&am…

react 判断图片是否加载完成_React中型项目的优化实践

项目介绍整个项目大概有60个页面&#xff0c;用到的组件大概150&#xff0c;package里面的依赖大概有70个&#xff0c;应该勉强算得上是一个中型的React的项目了。下面给大家看看我们现在build一次项目的结果--打包时间约150s&#xff0c;打包完之后的资源gzip之后约1.2m&#…

搭建本地wordpress

1.首先&#xff0c;下载xampp&#xff0c;安装按默认勾选即可。 2.安装完成后&#xff0c;启动Apache和MySQL这两个服务。 启动后变成绿色&#xff0c;表示启动成功。 3.点击MySQL项的Admin进入数据库后台。 4.点击用户账户新建用户。 5.填写用户名&#xff0c;host name选本地…

编写Java批注

Java 批注的允许的属性类型刻意非常严格&#xff0c;但是允许的类型也可以使用一些简洁的复合批注类型。 考虑教程站点中的示例注释&#xff1a; package annotation; interface ClassPreamble {String author();String[] reviewers(); }在这里&#xff0c;作者和审阅者具有St…

Python基础【day02】:字符串(四)

在Python中字符串本身有带很多操作&#xff0c;字符串的特性&#xff0c;不可以被修改 0、字符串常用功能汇总 1、字符串的定义 #定义空字符串>>> name#定义非空字符串 >>> name"luoahong"#通过下标访问 >>> name[1] u#不能修改字符串的值…

cryptojs vue 使用_VueJs里利用CryptoJs实现加密及解密

第一步 安装安装crypto-js第二步 创建在js文件目录下创建一个js文件secret/*** 对页面上输入的密码进行加密传输给后台进行验证&#xff0c;对返回的数据进行解密&#xff0c;在页面展示*/let CryptoJS require(crypto-js); // 引入AES源码jsexport default {/** 对密码进行加…

html5 窗口变形,HTML5画布(变形)

坐标变换案例1&#xff1a;function draw(){var cdocument.getElementById("myCanvas");var cxt c.getContext("2d");cxt.translate(200,50);cxt.fillStylergba(255,0,0,0.25);for(var i0;i<40;i){cxt.translate(25,25);cxt.scale(0.9,0.9);cxt.rotate(…