一、插入算法的步骤:
- 先将旧数组a排序,再复制一个长度(a.length+1)--(排序:Arrays.sort(旧数组a);复制:Arrays.copyOf(旧数组a, a.length+1));
- for循环遍历找出要插入的位置,int a =index;
- for循环将从index-->新数组长度的元素后移;
- 将要插入的值赋给a[index];
- 实现代码如下:
public class ArraysTest{
//插入排序:将数字4插入以下数组
public void static main(String[]args){
int[] a = {1,3,8,5,6,10}
int num=4;
//第一步Arrays.sort(a);
//排序int[] b =Arrays.copyOf(a, a.length+1);
//复制一个新数组
//第二步int index = -1;for(int i = 0;i<b.length; i++){ if(a[i]>num){ index=i; break; }}
//第三步for(int i=a.length-1;i>index; i--){ a[i]=a[i+1];}
//第四步a[index]=num;}}
二、冒泡排序实现口诀:
- N个数字来排队;
- 两两相比小靠前;
- 外层(循环轮数=i)i=N-1;
- 内层(循环比较次数 j)j=N-1-i;
实现代码如下:
public class MaopaoTest{
//冒泡排序:将数组a升序排列
public static void main(String[] args){
int[] a ={1,3,8,5,6,10};
//外层循环:是轮次=数组长度减一
for(int i =0;i<a.length-1;i++){
//内层循环:是两两比较的次数=数组长度-1-i
for(int j =0;j<a.length-1-i; j++){
//两两比较;符合条件则实现交换(用第三变量temp)
if(a[j]>a[j+1]){
int temp=0;
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
}
}