一、在一串排好序的数组中新增一个数,仍保持初始的排序方式
思路:
public class demo4 {
public static void main(String[] args) {
int[] a = {99,85,45,56,21};
int[] b = new int[6];
for (int i = 0; i < a.length; i++) {
b[i] = a[i];//b的最后一位没有赋值,相当于空,默认是0,
// 之后往里面添加数字相当于覆盖
}
System.out.println(Arrays.toString(b));
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = sc.nextInt();
boolean isInsert = false;
for (int i = b.length-2; i >=0; i--) { //-2是因为b本身大一位,且下标需小一位
if(num>b[i]){//从后向前遍历,从大到小排序,将更小的数放进数组b的最后一个空位
b[i+1]=b[i];//下标后移
}else {
b[i+1]=num;
isInsert = true;
break;
}
}
if(isInsert==false){ //原数组所有数都比新增加的数小,故将新增加的数放在首位
b[0]=num;
}
System.out.println(Arrays.toString(b));
}
}
二、从数组中删除一个数
思路:
public class test3 {
public static void main(String[] args) {
int[] a = {99,85,80,63,60};
int[] b = new int[4];
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的下标:");
int num = sc.nextInt();
int j = 0;
for (int i = 0; i < a.length; i++) {
if(i==num) continue;
b[i] = a[i];
j++;
}
System.out.println(Arrays.toString(b));
}
}
三、将一串给定数组元素使用选择排序的方法升序排序
public class demo5 {
public static void main(String[] args) {
/*
选择排序逻辑:
从前向后对每一个下表对应的元素作为基准值
与后面所有的元素进行比较,找出最小值
与当前下标的元素进行交换
进行下一次循环
*/ int[] a={7,6,2,5,8,4,12,3};
//i代表选取的基准位,j代表的在动的
for(int i=0;i<a.length-1;i++){
int min=a[i];
int tmp=i;
for (int j = i; j <a.length ; j++) {
if(min>a[j]){
min=a[j];
tmp=j;
}
}
a[tmp]=a[i];
a[i]=min;
}
System.out.println(Arrays.toString(a));
}
}
四、插入排序法
public class demo6 {
public static void main(String[] args) {
/*
逻辑:从第二位开始,向前比较,进行插入逻辑
*/
boolean isInsert = false;
int[] a = {1,3,8,2,5,7};
for (int i = 1; i < a.length; i++) {
int tmp = a[i];
for (int j = i-1; j >=0 ; j--) {
//如果遇到比自己大的,大的值就后移
// 如果遇到比自己小的,就在后方插入
//如果一直没有插入,就插入首位
if(tmp<a[j]){
a[j+1]=a[j];
}else
{ a[j+1]=tmp;
isInsert = true;
break;}
}
if (isInsert!=true){
a[0]=tmp;
}
}
System.out.println(Arrays.toString(a));
}
}
本文地址:https://blog.csdn.net/qq_42005540/article/details/107349192
如对本文有疑问, 点击进行留言回复!!
现在微服务这么火,你还不了解吗?阿里P8推荐的微服务学习指南
论文笔记:SlowFast Networks for Video Recognition
网友评论