Java基础13-数组算法
1.数组的复制
//复制算法,将arr1数组的值复制给arr2数组
import java.util.Arrays;
public class Test1{
public static void main(String[] args){
int[] arr1={88,99,66,55};
int[] arr2=new int[arr1.length]; for(int i=0;i<arr1.length;i++){
arr2[i]=arr1[i];
}
System.out.println("数组arr2的值:");
for(int i=0;i<arr1.length;i++){
System.out.println(arr2[i]);
} }
}
2.查找算法(搜索)
import java.util.Scanner;
import java.util.Arrays;
public class Test1{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入你要查询的名字:");
String n=in.next();
String[] name={"张三","李四","王二","小明"};
boolean flag=false;//标记 for(int i=0;i<name.length;i++){
if(n.equals(name[i])){
flag=true;
break;
}
}
if(flag==true){
System.out.println("搜到了");
}else{
System.out.println("该名字不存在");
} }
}
3.插入算法
/*插入算法
23,32,57,78,98,100从小到大排列,此时在100的位置插入25,顺序就变了,此时就需要进行判断
*/
import java.util.Scanner; public class Test1{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int[] arr={23,32,57,78,98,100};
System.out.println("请输入你要插入的数字:");
int num=in.nextInt();
arr[arr.length-1]=num;
for(int i=arr.length-1;i>0;i--){
if(arr[i]<arr[i-1]){
int temp=arr[i];
arr[i]=arr[i-1];
arr[i-1]=temp;
}else{
break;
}
} for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
} }
}
4.冒泡排序(选出老大后,后面的还要来和老大比)
//冒泡排序
import java.util.Arrays;
public class Test1{
public static void main(String[] args){
int[] num={65,23,56,12,88,3,5,13,109};
//从小到大排序
for(int j=0;j<num.length-1;j++){
for(int i=0;i<num.length-1;i++){
if(num[i]>num[i+1]){
int temp=num[i];
num[i]=num[i+1];
num[i+1]=temp;
}
}
} for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
}
}
5.选择排序(选出老大后,老大就可以休息了,不比了,后面以此类推) 比冒泡排序效率更高
//选择排序
import java.util.Arrays;
public class Test1{
public static void main(String[] args){
//从小到大排序
int[] num={65,23,56,12};
for(int i=0;i<num.length-1;i++){
for(int j=i+1;j<num.length;j++){ //j<4
if(num[i]>num[j]){
int temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
}
for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
}
}

Java基础13-数组算法的更多相关文章
- Java基础13:反射与注解详解
Java基础13:反射与注解详解 什么是反射? 反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性. Orac ...
- 【java基础 13】两种方法判断hashmap中是否形成环形链表
导读:额,我介绍的这两种方法,有点蠢啊,小打小闹的那种,后来我查了查资料,别人都起了好高大上的名字,不过,本篇博客,我还是用何下下的风格来写.两种方法,一种是丢手绢法,另外一种,是迷路法. 这两种方法 ...
- Java基础-反转数组
/** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- java基础(十) 数组类型
1. 数组类简介 在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...
- Java基础13一异常
1.异常概念 异常是程序在运行期发生的不正常的事件,它会打断指令的正常执行流程. 设计良好的程序应该在异常发生时提供处理这些不正常事件的方法,使程序不会因为异常的发生而阻断或产生不可预见的结果. Ja ...
- java 基础概念 -- 数组与内存控制
问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...
- Java基础:数组的声明,循环,赋值,拷贝。
数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanner in ...
- 【Java基础】数组和算法
数组和算法 查找算法 线性查找 ... 二分查找 二分查找要求数据结构是有序的. package com.parzulpan.java.ch03; /** * @Author : parzulpan ...
随机推荐
- eclipse中jad反编译工具的安装
我的云盘:工具里面有 Q:为什么有必要在开发环境中配置反编译工具呢? A: 当运行引用了第三方jar包项目时,突然报出了jar包中的某个类的某一行出现异常.我们想看一下这个class文件的代码时,经 ...
- 完全离线安装VSCode插件--Eslint
最近折腾了一番,总算把Eslint插件在离线的情况下安装好了.之前查了挺多,但是很多方法还是在没有完全离线的情况下进行的.之所以想完全离线安装,主要是因为我们工作的地方是禁止访问外网的,所以像直接执行 ...
- sql 脚本创建索引
之前从没有用SqlServer数据库处理过大数据量的表,都是用Oracle,然后一般为数据量较大的表添加索引或主键都是用plsql工具,今天正好需要为一张保存于SqlServer数据库的千万级数据表增 ...
- 洛谷P3709 大爷的字符串题(莫队)
题目背景 在那遥远的西南有一所学校 /*被和谐部分*/ 然后去参加该省省选虐场 然后某蒟蒻不会做,所以也出了一个字符串题: 题目描述 给你一个字符串a,每次询问一段区间的贡献 贡献定义: 每次从这个区 ...
- Python中的Numpy包
通过本次学习你可以掌握Numpy Numpy介绍(获取地址)更多Numpy函数 numpy的主要对象是同质多维数组.也就是在一个元素(通常是数字)表中,元素的类型都是相同的. numpy的数组类被成为 ...
- 洛谷2685 [TJOI2012]桥
[TJOI2012]桥 题目大意:给定一无向图,求删除一条边后1到n最短路的最大值,以及方案数. 做法:我们先从1为起点.从n为起点跑两边dij,获得每一个点到起点1.终点n的最短距离,其实距离和边权 ...
- [USACO09FEB]改造路Revamping Trails 分层最短路 Dijkstra BZOJ 1579
题意翻译 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 ...
- 10.Find All Anagrams in a String(在一个字符串中发现所有的目标串排列)
Level: Easy 题目描述: Given a string s and a non-empty string p, find all the start indices of p's ana ...
- Java内存区域与内存溢出异常---运行时数据区域
运行时数据区域 Java虚拟机所管理的内存将会包括以下几个运行时数据区域 线程私有区域 1.程序计数器 程序计数器记录的是当前正在执行的虚拟机字节码指令所在的地址.在虚拟机的概念模型中,字节码解释 ...
- javascript的offset、client、scroll、screen使用方法
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAHuCAYAAABpm/53AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw