package day02;
public class A {
public static void main(String[] args) {
int a[]={15,7,15,6,4,3,4,6,7};
int i,j,k,low,high,mid,t;
for(i=k=1;i<a.length;i++){
low=0;
high=k-1;
while(..){//需写
mid=(low+high)/2;
if(a[mid]>a[i]){
..//需写
}else low=mid+1;
if( ... || a[low]!=a[i]){//需写
t=a[i];
for(j=k-1;...;j--){//需写
a[j+1]=a[j];
...//需写
}
k++;
}
}
for(j=0;j<k;j++){}
System.out.println(a[j]);
} }}
//上面的程序中,编写将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,
其中...是需要写的程序,共5处需写,大家帮我看下,thanks
public class A {
public static void main(String[] args) {
int a[]={15,7,15,6,4,3,4,6,7};
int i,j,k,low,high,mid,t;
for(i=k=1;i<a.length;i++){
low=0;
high=k-1;
while(..){//需写
mid=(low+high)/2;
if(a[mid]>a[i]){
..//需写
}else low=mid+1;
if( ... || a[low]!=a[i]){//需写
t=a[i];
for(j=k-1;...;j--){//需写
a[j+1]=a[j];
...//需写
}
k++;
}
}
for(j=0;j<k;j++){}
System.out.println(a[j]);
} }}
//上面的程序中,编写将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,
其中...是需要写的程序,共5处需写,大家帮我看下,thanks
Arrays.sort(a);
public static void main(String[] args){
Integer a[]={15,7,15,6,4,3,4,6,7};
a = new TreeSet<>(Arrays.asList(a)).toArray(new Integer[1]);
System.out.print(Arrays.toString(a));
}
这个题,是需在上面的程序中,补充那五处,大家帮我看下,thanks
public class B
{
public static void main(String[] args)
{
int[] a ={15,7,15,6,4,3,4,6,7};
int i,j,k,low,high,mid,t; for(i = k = 1;i<a.length;i++){
low = 0;
high = k-1;
while(low<=high){ //1
mid = (low+high);
if(a[mid]>a[i]){
high = mid-1;// 2
}else{
low = mid+1;
}
}
if( i<a.length || a[low]!=a[i]){ //3
t = a[i];
for(j = k-1;j>=low;j--){ // 4
a[j+1]=a[j];
a[low]=t;//5
}
k++;
}
//}
}
for(j = 0;j<a.length;j++){
System.out.println(a[j]);
}
}
}我把你的代码稍微改动了一下!!
t = a[i];看起来是要做个数据交换的,但是第五个空,只写一步操作,恐怕无法实现啊。如果仅仅是赋值操作,也没必要先赋值给t了的,直接使用a[i]即可。嗯,俺算法有点弱,期待正确答案~