java中将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,在线等,

时间:2022-06-22 08:04:39
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

14 个解决方案

#1


int a[]={15,7,15,6,4,3,4,6,7};
Arrays.sort(a);

#2


是要按上面的代码,中间填相关代码的,

#3


别人实现好的一段代码,然后擦掉一些关键步骤让人补充:WLGQ。。。

这你在哪看到的?是什么排序算法有说么?

#4


在笔试题中看到的,没说是用什么算法,大家一起想下,thanks

#5



    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));
    }

#6


多谢大家,
这个题,是需在上面的程序中,补充那五处,大家帮我看下,thanks

#7


这是二分排序法:
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]);
    }
}
}

我把你的代码稍微改动了一下!!

#8


作业题自己做啊,叫别人做有什么意义啊?

#9


建议学编程的要买两本数据结构的书看看。虽说里面理论知识比较多,比较乏味,但是作用还是不小。类似这中算法

#10


7L的结果貌似有点问题。。

二分排序法,俺瞅瞅去~

#11


而且关于第五个地方,有点问题啊:
t = a[i];看起来是要做个数据交换的,但是第五个空,只写一步操作,恐怕无法实现啊。如果仅仅是赋值操作,也没必要先赋值给t了的,直接使用a[i]即可。

嗯,俺算法有点弱,期待正确答案~ java中将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,在线等,

#12


学数据结构的经常会出些排序的题,排序的方法也挺多的,这个真的是面试题?????

#13


引用 3 楼 oh_Maxy 的回复:
别人实现好的一段代码,然后擦掉一些关键步骤让人补充:WLGQ。。。

这你在哪看到的?是什么排序算法有说么?

一看就是二分查找排序

#14


java中将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,在线等,你直接搜二分查找排序,估计有一大堆
java中将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,在线等,

#1


int a[]={15,7,15,6,4,3,4,6,7};
Arrays.sort(a);

#2


是要按上面的代码,中间填相关代码的,

#3


别人实现好的一段代码,然后擦掉一些关键步骤让人补充:WLGQ。。。

这你在哪看到的?是什么排序算法有说么?

#4


在笔试题中看到的,没说是用什么算法,大家一起想下,thanks

#5



    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));
    }

#6


多谢大家,
这个题,是需在上面的程序中,补充那五处,大家帮我看下,thanks

#7


这是二分排序法:
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]);
    }
}
}

我把你的代码稍微改动了一下!!

#8


作业题自己做啊,叫别人做有什么意义啊?

#9


建议学编程的要买两本数据结构的书看看。虽说里面理论知识比较多,比较乏味,但是作用还是不小。类似这中算法

#10


7L的结果貌似有点问题。。

二分排序法,俺瞅瞅去~

#11


而且关于第五个地方,有点问题啊:
t = a[i];看起来是要做个数据交换的,但是第五个空,只写一步操作,恐怕无法实现啊。如果仅仅是赋值操作,也没必要先赋值给t了的,直接使用a[i]即可。

嗯,俺算法有点弱,期待正确答案~ java中将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,在线等,

#12


学数据结构的经常会出些排序的题,排序的方法也挺多的,这个真的是面试题?????

#13


引用 3 楼 oh_Maxy 的回复:
别人实现好的一段代码,然后擦掉一些关键步骤让人补充:WLGQ。。。

这你在哪看到的?是什么排序算法有说么?

一看就是二分查找排序

#14


java中将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,在线等,你直接搜二分查找排序,估计有一大堆
java中将一维数组a[]中不相同的数按从小到大的序重新存于一组数组a[]中,在线等,