杨辉三角 往有序数组插入元素
杨辉三角
import java.util.Scanner;
public class B {
public static void main(String[] args) {
int[][] array=new int[10][];
for(int i=0;i<array.length;++i){
array[i]=new int[i+1];
for(int j=0;j<array[i].length;++j){
if(j==0 || j==array[i].length-1){
array[i][j]=1;
}else{
array[i][j]=array[i-1][j-1]+array[i-1][j];
}
}
}
for(int i=0;i<array.length;++i){
for(int j=0;j<array[i].length;++j){
System.out.print(array[i][j]+"\t");
}
System.out.println();
}
}
}
往有序数组插入元素
public class B{
public static void main(String[] args){
int[] b={1,2,4,5};
int[] p=new int[b.length+1];
int v=3;
for(int i=0;i<b.length;++i){
if(b[i] < v){
p[i]=b[i];
}else{
p[i]=v;
for(int j=i;j<b.length;++j){
p[j++]=b[j];
}
break;
}
}
b=p;
for(int i=0;i<b.length;++i){
System.out.print(b[i]+"\t");
}
}
}
上面的错误结果为

应该把p[j++]=b[j] => p[j+1]=b[j]
寻找插入位置
public class V {
public static void main(String[] args){
int[] b={1,2,4,5};
int[] p=new int[b.length+1];
int v=3;
int index=-1;
for(int i=0;i<b.length;++i){
if(v<=b[i]){
index=i;
break; // require break
}
}
if(index == -1){ // 待插入值最大
index=b.length;
}
// System.out.println(index);
for(int i=0,j=0;i<p.length;++i){
if(i != index){
p[i]=b[j];
j++;
}else{
p[i]=v;
}
}
for(int i=0;i<p.length;++i){
System.out.print(p[i]+"\t");
}
}
}

浙公网安备 33010602011771号