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

数组增删改查及冒泡

package com.judge;

//插入功能的实现
import java.util.Scanner;

public class Insert {
public static void main(String[] args){

int[] a=new int[]{1 ,2 ,3 ,4 ,5 ,6};
Output(a);
/*可在main函数之外定义函数关系,以达到快捷应用的目的
*
public static void Output(int[] arr1){
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]);}
}
如上:public static void 固定格式不变
Output 为关系的名
int[] 为该关系中的变量类型
arr1 为该关系示例中所作用的对象数组
public static void main(String[] args) arg:自变量
public static void Output(int[] arr1)
*/
for(int i=0;i<a.length;i++){
System.out.print(a[i]);}
System.out.println("请输入你要插入的位置:");
Scanner sc=new Scanner(System.in);
int index=sc.nextInt(); //index :指数、指针
System.out.println("请输入你要插的数字:");
int num=sc.nextInt();


if(index>0&&index<=a.length-1){
for(int j=a.length-1;j>index;j--){
a[j]=a[j-1];
}
a[index]=num;
}else{
System.out.println("你的输入有误!");
}
Output(a); }

public static void Output(int[] arr1){
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]);}
}

}

 

 

 

package com.judge;

//8.数组的修改实现
import java.util.Scanner;
//不完善
public class Alter {
public static void main(String[] args) {
{
Input();
}
}
public static void Run(int a[],int index){
if(index<a.length){
for(int i=index;i<a.length-1;i++){
a[i]=a[index];

}
System.out.println(a[index]);
}
else{
System.out.println("输入要修改的位置有误,请重新输入位置:");
Input();
}
}
public static void Input(){
Scanner sc=new Scanner(System.in);
int arr[]=new int[]{1,2,3,4,5};
System.out.println("请输入要修改的元素的位置:");
int index=sc.nextInt();
Run(arr,index);
}


}

 

 

package com.judge;
//删除功能的实现
import java.util.Scanner;
import java.util.Scanner;

public class Delete {
public static void main(String[] args) {

int[] b=new int[]{1,2,3,4,5,6};
//定义数组:int[] b=new int{1,2,3,4,5,6};
show(b);
delete(b);
}
public static void delete(int[] array){
System.out.print("请输入你要删除的位置:");
Scanner sc=new Scanner(System.in);
int index=sc.nextInt();
if(index>=0&&index<=array.length-1){
for(int i=index;i<array.length-1;i++){
array[i]=array[i+1];
}array[array.length-1]=0;
show(array);
}else{
System.out.print("你的输入有误!");
}
}
public static void show(int[] array){
for(int i=0;i<array.length;i++){
System.out.print(array[i]);
}
}
}

 

 

 

package com.judge;

import java.util.Scanner;

public class Inquiry {
//查询功能的实现
public static void main(String[] args) {
int[] a=new int[]{1 ,2 ,3 ,4 ,5 ,6};
insert(a);
}
public static void insert(int[] array){
System.out.println("请输入你要查询的位置:");
Scanner sc=new Scanner(System.in);
int index=sc.nextInt();
if(index>=0&&index<=array.length){
for(int i=index;i<array.length-1;i++){
array[i]=array[index];
}
System.out.println(array[index]);
}

else{
System.out.print("你的输入有误!");
}

}
}

 

 

 

package com.judge;
//10.
/*冒泡排序法实现,自己先定义数组,然后排序
* 缺点:不能实现输入数据后排序的功能
* 输入排序见BubbleZh
* */
public class BubbleMe {
public static void main(String[] args){
int[] a=new int[]{1,3,6,9,5,3,7};
System.out.println("排序前的数组:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}System.out.println();
int temp;
for(int j=0;j<a.length;j++){
for(int k=0;k<a.length;k++){
if(a[k]<a[j]){
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
}
}
System.out.println("排序后的数组:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}
}

 

 

 

 

 

 

package com.judge;
//功能更加全面的冒泡程序
import java.util.Scanner;

public class BubleZh {
//利用冒泡法进行排序
//为什么叫做是“冒泡”排序?
//这个算法的名字由来是因为越小或越大的元素会经由交换慢慢“浮”到数列的顶端,故名


public static void main(String[] args) {

Scanner scanner =new Scanner(System.in);
System.out.printf("请输入六个数:");
int[] score = new int[6];
for(int i = 0; i < score.length; i++){
score[i] = scanner.nextInt();
}

//int[] a = new int[]{53, 98, 9, 34, 56, 38};
PubbleSort(score);
// TODO Auto-generated method stub

}

public static void PubbleSort(int[] array){
int temp;
for(int x = 0; x < array.length - 1; x++ ){//这里是竖列的for循环,array.length是6个,而竖列只有5列, 所以应该是array.length-1
for(int y = 0; y < array.length - 1 - x; y++){
//在这里,第一次循环是5次,应该是array.length-1;但这是嵌套的for循环,第二次循环还是
//5次,所以这里的y < 这个值应该是个变量,通过发现每次循环,都会次数减少,次数应该是5,4,3,2,1,而x的变化正好是0,1,2,3,4
//所以次数:5-0=5, 5-1=4, 5-2=3, 5-3=2, 5-4=1;所以根据规律发现再- X 即可。
if(array[y] > array[y+1]){ //这里的y是0,1,2,3,4变化,所以y 与 y+1 即可
temp = array[y];
array[y] = array[y+1];
array[y+1] = temp;
}
}
}
for(int z = 0; z < array.length ; z++){
System.out.print(array[z]+" ");
}
}

}
/*
思路:
0 1 2 3 4 5
0-1 1-2 2-3 3-4 4-5
0-1 1-2 2-3 3-4
0-1 1-2 2-3
0-1 1-2
0-1

先是第一个和第二个比较,谁大谁排后,然后第二个和第三个比较,谁打谁拍后,第三个和第四个。。,第四个和第五个比较,完毕之后
第五个就是最大的,第五个就不用动;然后继续第一个和第二个比较,谁大谁排后,第二个和第三个。。。。就这样后第四个是倒数第二个大的
就这样比到最后,最后就只剩第一个和第二个比较;
通过上述,明显是两个for循环的嵌套。
*/

 

相关文章:

  • TCP连接状态详解及TIME_WAIT过多的解决方法
  • zabbix架构
  • nginx: bind() to 0.0.0.0:8001 failed (13: Permission denied)
  • Linux统计文件行数
  • ACM竞赛:立方和问题
  • 初级运维(一)
  • 九曲黄河万里沙,浪淘风簸自天涯 — 正则表达式
  • 【PHP】函数explode和split的区别
  • IIS下配置PHP
  • OGNL表达式介绍
  • CSS——NO.8(代码简写)
  • Sqli-labs less 10
  • Crontab创建定时任务
  • 使用maven进行测试设置断点调试的方法
  • Oracle 11gR2 RAC 常用维护操作 说明
  • 《Java编程思想》读书笔记-对象导论
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • C学习-枚举(九)
  • Github访问慢解决办法
  • HTTP--网络协议分层,http历史(二)
  • Mysql优化
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 关于Java中分层中遇到的一些问题
  • 计算机在识别图像时“看到”了什么?
  • 前端
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端技术周刊 2019-01-14:客户端存储
  • 最简单的无缝轮播
  • #QT(智能家居界面-界面切换)
  • #数学建模# 线性规划问题的Matlab求解
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (Matlab)使用竞争神经网络实现数据聚类
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (七)c52学习之旅-中断
  • (转) Android中ViewStub组件使用
  • (转)VC++中ondraw在什么时候调用的
  • (轉貼) UML中文FAQ (OO) (UML)
  • .bat批处理出现中文乱码的情况
  • .Mobi域名介绍
  • .Net 6.0 处理跨域的方式
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Micro Framework 4.2 beta 源码探析
  • .net6 webapi log4net完整配置使用流程
  • .NET处理HTTP请求
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET中统一的存储过程调用方法(收藏)
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @ComponentScan比较
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @WebServiceClient注解,wsdlLocation 可配置