数组增删改查及冒泡

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循环的嵌套。
*/

原文地址:https://www.cnblogs.com/zjfjava/p/5738977.html