1105学习笔记 数组的算法上
1105数组的算法
升序
引入一个工具
知识
如何导入工具类
- import 工具类的路径
例子
- import java.util.Arrays;
使用工具
sort方法
功能
- 帮我们把数组进行升序,由小到大
- 会影响数组内部的结构
用法
- Arrays.sort(数组);
参考代码
import java.util.Arrays;public class Test {public static void main(String[] args) {int[] nums = new int[]{2,5,3,2,6};Arrays.sort(nums);for(int i=0;i<nums.length;i++){System.out.println(nums[i]);}}
}
交换两个变量
使用第三个变量
代码
import java.util.Arrays;public class Test {public static void main(String[] args) {int a = 11;int b = 22;int temp;System.out.println("数据交换前a与b的值" + a + "---" + b);// 让临时的变量接收一个数据temp = b;b = a;a = temp;// 数据交换成功System.out.println("数据交换后a与b的值" + a + "---" + b);} }
核心代码
temp = b; b = a; a = temp;
不允许使用第三个变量
核心代码
a=a+b; b=a-b; a=a-b;
逆序
光标移动的最大下标算法
- 数组会在哪里停下,取决于数组的长度。
- 如果数组的长度是n,那么
- 下标不会走到n/2
算法代码
public class Test {public static void main(String[] args) {// 初始化一个数组String[] strList = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"};// 遍历时遇到哪个索引会停止的算法: 数组的长度除2取整int topIdx = strList.length / 2;// 开始遍历,让下标从0开始游走for (int i = 0; i < topIdx; i++) {// 把下标所在的值交给临时变量String temp = strList[i];// 获得交换索引值,计算出要与哪个索引进行数据交换int changeIndex = strList.length - 1 - i;// 把交换索引值,对应的数据赋值给当前光标所在空间strList[i] = strList[changeIndex];// 把临时变量的值,赋值给交换索引的值strList[changeIndex] = temp;}// 遍历数组,查看排序后的效果for (int j = 0; j < strList.length; j++) {System.out.print(strList[j]);}}
}
求最大值
算法
- 来一个临时变量
- 让数组成员的值与临时变量比较
- 谁大,就把谁的值赋给临时变量
代码
public class getmaxnum {public static void main(String[] args) {// 定义一个整数数组,同时给与初始值int[] numList = {11, 22, 4, 3, 55, 33};// 开始比较大小// 定义一个变量,用于保存最大的数据int temp = numList[0];// 开始鹿历for (int i = 1; i < numList.length; i++) {// 需要重复的事情就是// 拿temp的数据与下标所对应的数据进行大小比较,if (numList[i] > temp) {// 把当前下标对应的值,赋给temp变量temp = numList[i];}}System.out.println("最大的值是" + temp);}
}
追加数据
算法
- 遍历数组找到第一个出现null的位置
- 记录这个位置,并往数组的这个位置插入数据
代码
String[] strList = new String[5];// 给空间赋值strList[0] = "hello";strList[1] = "java";strList[2] = "welcom";// 需要插入的数据String sendKey = "c#";// 插入算法for (int i = 0; i < strList.length; i++) {System.out.println(i);// 每一次进入循环要重复做的事情// 判断光标i所对应的值是否为nullif (strList[i] == null) {
// System.out.println("光标对应的值是null" + i);strList[i] = sendKey;break;}}for (int j = 0; j < strList.length; j++) {System.out.println(strList[j]);}
中部插入数据
伪代码
第一步:
找到最大有效数据的下标
int temp=0;
for(int m=0;m<数组.length;m++){if(数组[m]==null){temp = m;break;
}
temp--;}第二步:后移
// 数据后移的遍历
for(int i=temp;i>j;i--){数组[i+1]=数组[i];
}第三步:
数据的插入
数组[j]=“html";
XMind - Trial Version
1105学习笔记 数组的算法上相关推荐
- c语言中void arrout,c语言学习笔记(数组、函数
<c语言学习笔记(数组.函数>由会员分享,可在线阅读,更多相关<c语言学习笔记(数组.函数(53页珍藏版)>请在人人文库网上搜索. 1.数组2010-3-29 22:40一维数 ...
- Go语言学习笔记-数组、切片、map
Go语言学习笔记-数组.切片.map 数组:同一数据类型元素的集合.是值类型,长度固定无法修改 声明格式:var 数组名字 [元素数量] 数据类型 var arr [3] int //声明定义了一个长 ...
- Java 学习笔记 - 数组类型互转
Java 学习笔记 - 数组类型互转 数组类型转换 字符串数组 to (Integer.Long.Double)列表 传统方式 Java8 Stream方式 数组 to 数组 字符串数组 to (in ...
- 【计算机专业漫谈】【计算机系统基础学习笔记】W1-计算机系统概述
利用空档期时间学习一下计算机系统基础,以前对这些知识只停留在应试层面,今天终于能详细理解一下了.参考课程为南京大学袁春风老师的计算机系统基础MOOC,参考书籍也是袁老师的教材,这是我的听课+自查资料整 ...
- C 学习笔记 - 数组
在学习了 C 语言的数组之后,我发现 C 中的数组与 C# 中的数组除了书写形式上略有区别,其它的基本上都一模一样. 因为之前有 C# 的底子,所有学习 C 语言,感觉也挺轻松的,不过 C 和 C# ...
- php 学习笔记 数组1
1.一般情况下$name['tom']和$name[tom]是相同的:但没有引号的键不能和常量区别开,如:define('index', 5)时:$name['tom']和$name[tom]不同 2 ...
- JAVA学习笔记--数组初始化
JAVA中,数组只是相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.数组通过方括号下标操作符[]来定义和使用,要定义一个数组只需在类型名后面加上一个方括号即可,如: int[] ...
- PHP学习笔记-数组
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51635540 本文出自:[顾林海的博客] 前言 数组就是一系列数据的集 ...
- php 学习笔记 数组2
10.切割数组 array_slice(array, offset, length);返回一个由原始数组中的连续元素组成的新数组,参数1为原始数组,参数2为要复制的起始位置, 参数3要复制的个数:新数 ...
最新文章
- 一起学 c++(二)
- 【报告】2014年移动端二次元用户调查报告:进击的90后
- 改变Android ProgressBar样式颜色
- [MongoDB]db.serverStatus()命令详解
- 游戏筑基开发之文件操作(C语言)
- 说说微信聊天记录收费这件事
- 关于filter用户授权的例子
- 【转】浅谈命令查询职责分离(CQRS)模式
- PROC文件及文件夹创建
- 腾讯微博等7家网站实行实名制
- 用大数据扒一扒手机黑卡 | Alfred数据室
- 2021级南航计算机专硕829备考记录
- 基于Vue实现的魔方矩阵排列效果
- 教你如何下载抖音视频的背景音乐?是音乐不是视频哦
- linux怎么看用的哪个网卡驱动,linux下如何查看网卡驱动版本信息?
- 从单体式架构迁移到微服务架构
- 智能卡卡发卡流程(收藏3)
- 找准盈利模式,博客网站赚钱也轻松
- Guava Splitter,Splitter与Java split的对比
- 什么是生态型平台企业?
热门文章
- Android :ScaleAnimation
- shopxo首页的新闻头条栏:如何隐藏或关闭?
- java开发框架_Java-程序员感悟-开发人员喜欢的框架之Spring
- wordpress模板-响应式博客主题模板-Repay主题开源版
- 至尊版影视双端app源码对接苹果CMS 带商城码支付
- html在线消息,HTML5之消息通知的使用(Web Notification)
- python一行代码迷宫_通过Python代码实现走迷宫的方法
- 原生仿微信社交社区即时通讯聊天双端APP源码开源带PC客户端文档说明
- CSS 命名规范参考及书写注意事项
- Linux Shell脚本入门教程系列之(十一)Shell while循环