public class HighArray {
private long[] a;
private int nElems;
public HighArray(int max){
a = new long[max];
nElems = 0;
}
public boolean find(long searchKey){
int j;
for(j=0;j<nElems;j++){
if(a[j] == searchKey)
break;
}
if(j==nElems)
return true;
else
return false;
}
public void insert(long value){
a[nElems] = value;
nElems++;
// System.out.print(nElems);
}
public boolean delete(long value){
int j;
for(j=0;j<nElems;j++)
if(value == a[j]) break;
if(j == nElems)
return false;
else{
for(int k=j;k<nElems;k++)
a[k] = a[k+1];
nElems--;
return true;
}
}
public long[] sort(){
for(int j = 0; j<nElems; j++){
System.out.println("=====1=======>"+a[j]);
}
java.util.Arrays.sort(a);
for(int j = 0; j<nElems; j++){
System.out.println("=======2=====>"+a[j]);
}
return a;
}
public void display(){
for(int j = 0; j<nElems; j++){
System.out.println(a[j]);
}
}
public int getMax(long searchKey){ //二分法查找最大值
java.util.Arrays.sort(a);
int lowerBound = 0;
int upperBound = nElems-1;
int currentIn;
while(true){
currentIn = (lowerBound+upperBound)/2;
if(a[currentIn] == searchKey)
return currentIn;
else if(lowerBound>upperBound)
return nElems;
else {
if(a[currentIn]<searchKey)
lowerBound = currentIn+1;
else
upperBound = currentIn-1;
}
}
}
}class HighArrayApp{
public static void main(String[] args){
int maxSize = 100;
HighArray arr= new HighArray(maxSize) ;
arr.insert(120);
arr.insert(30);
arr.insert(140);
arr.insert(60);
arr.insert(150);
arr.insert(90);
arr.insert(80);
arr.insert(10);
arr.insert(70);
arr.insert(100);
arr.insert(110);
arr.insert(1120);
// System.out.println(arr.getMax(90));
arr.sort();
// arr.display();
}
}=====1=======>120
=====1=======>30
=====1=======>140
=====1=======>60
=====1=======>150
=====1=======>90
=====1=======>80
=====1=======>10
=====1=======>70
=====1=======>100
=====1=======>110
=====1=======>1120
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
private long[] a;
private int nElems;
public HighArray(int max){
a = new long[max];
nElems = 0;
}
public boolean find(long searchKey){
int j;
for(j=0;j<nElems;j++){
if(a[j] == searchKey)
break;
}
if(j==nElems)
return true;
else
return false;
}
public void insert(long value){
a[nElems] = value;
nElems++;
// System.out.print(nElems);
}
public boolean delete(long value){
int j;
for(j=0;j<nElems;j++)
if(value == a[j]) break;
if(j == nElems)
return false;
else{
for(int k=j;k<nElems;k++)
a[k] = a[k+1];
nElems--;
return true;
}
}
public long[] sort(){
for(int j = 0; j<nElems; j++){
System.out.println("=====1=======>"+a[j]);
}
java.util.Arrays.sort(a);
for(int j = 0; j<nElems; j++){
System.out.println("=======2=====>"+a[j]);
}
return a;
}
public void display(){
for(int j = 0; j<nElems; j++){
System.out.println(a[j]);
}
}
public int getMax(long searchKey){ //二分法查找最大值
java.util.Arrays.sort(a);
int lowerBound = 0;
int upperBound = nElems-1;
int currentIn;
while(true){
currentIn = (lowerBound+upperBound)/2;
if(a[currentIn] == searchKey)
return currentIn;
else if(lowerBound>upperBound)
return nElems;
else {
if(a[currentIn]<searchKey)
lowerBound = currentIn+1;
else
upperBound = currentIn-1;
}
}
}
}class HighArrayApp{
public static void main(String[] args){
int maxSize = 100;
HighArray arr= new HighArray(maxSize) ;
arr.insert(120);
arr.insert(30);
arr.insert(140);
arr.insert(60);
arr.insert(150);
arr.insert(90);
arr.insert(80);
arr.insert(10);
arr.insert(70);
arr.insert(100);
arr.insert(110);
arr.insert(1120);
// System.out.println(arr.getMax(90));
arr.sort();
// arr.display();
}
}=====1=======>120
=====1=======>30
=====1=======>140
=====1=======>60
=====1=======>150
=====1=======>90
=====1=======>80
=====1=======>10
=====1=======>70
=====1=======>100
=====1=======>110
=====1=======>1120
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
=======2=====>0
public long[] sort() {
for (int j = 0; j < nElems; j++) {
System.out.println("=====1=======>" + a[j]);
}
java.util.Arrays.sort(a);
for (int j = a.length - 1, i = 0;i < nElems;i++,j--) {
System.out.println("=======2=====>" + a[j]);
}
return a;
}
HighArray arr= new HighArray(maxSize) ;for(int j = 0; j<nElems; j++){
System.out.println("=======2=====>"+a[j]);
}你的数组有100位,而你只循环了6位,排序后当然0在前面