数组冒泡升序降序

来源:互联网 发布:家长控制电脑软件 编辑:程序博客网 时间:2024/06/20 00:01
package test;


import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Test
{
//升序
public static int[] Ascending(int[] input){
for(int i=0;i<input.length;i++){
int j=i;
for(;j<input.length-1;j++){
if(input[j]>input[j+1]){
int temp =input[j];
input[j]=input[j+1];
input[j+1]=temp;
}
}
}
return input;
}
//降序
public static int[] Descending(int[] input){
for(int i=0;i<input.length;i++){
int j=0;
for(;j<input.length-1;j++){
if(input[j]<input[j+1]){
int temp =input[j];
input[j]=input[j+1];
input[j+1]=temp;
}
}
}
return input;
}
    public static void main(String[] args)
    {  
    int[] array=new int[]{8,2,5,3,8};
//     int[] newArray=Test.Ascending(array);
    int[] newArray=Test.Descending(array);
    for(int i:newArray){
       System.out.println(i);
        }
    }


}

代码做了改进,首次运行上面的代码没发现问题,但觉得不符合逻辑,所以做了修改。还增加了查询的方法。



package test;


import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Test
{
   //查找
   public static int[] findIndex(int[] input,int value){
  int sum=0;
  for(int i=0;i<input.length;i++){
  if(input[i]==value){
  sum++;
  }
  }
  if(sum==0){
 return null;
  }
  int[] re=new int[sum];
  int index=0;
  for(int i=0;i<input.length;i++){
  if(input[i]==value){
 re[index]=i;
 index++;
  }
  }
  return re;
   }

//升序
public static int[] Ascending(int[] input){
for(int i=0;i<input.length;i++){
int j=0;
for(;j<input.length-i-1;j++){
if(input[j]>input[j+1]){
int temp =input[j];
input[j]=input[j+1];
input[j+1]=temp;
}
}
}
return input;
}
//降序
public static int[] Descending(int[] input){
for(int i=0;i<input.length;i++){
int j=0;
for(;j<input.length-i-1;j++){
if(input[j]<input[j+1]){
int temp =input[j];
input[j]=input[j+1];
input[j+1]=temp;
}
}
}
return input;
}
    public static void main(String[] args)
    {  
    int[] array=new int[]{8,2,5,3,8};
//     int[] indexarry=Test.findIndex(array, 2);
//     if(null!=indexarry){
//     for(int i:indexarry){
//        System.out.println(i);
//        }
//     }else{
//     System.out.print("no found");
//     }
//    
//     int[] newArray=Test.Ascending(array);
    int[] newArray=Test.Descending(array);
    for(int i:newArray){
       System.out.println(i);
      }
    }


}