Java题,有数组 int[] arr={5.2.3.4.9.8.7.1} 请编写一段程序为该数组进行排序,

Java题,有数组 int[] arr={5.2.3.4.9.8.7.1}
请编写一段程序为该数组进行排序,要求结果为升序

public static void main(String[] args) throws Exception {
 int[] arr={5,2,3,4,9,8,7,1};
 insertSort(arr);
}

/**
 * @param array插入排序算法待排数组
 */
static void insertSort(int ...array){
int i,j,temp;
for(i=1;i<array.length;i++){
if(array[i]<array[i-1]){
temp=array[i];
for(j=i-1;j!=-1&&array[j]>temp;j--){
 array[j+1]=array[j];
}
array[j+1]=temp;
}
}

for(int item:array) out.print(item+" ");
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-21
你的数组写的有问题,int[] arr={5,2,3,4,9,8,7,1},分隔符是逗号
public static void main(String[] args){
int[] a={5,4,2,4,9,1};
Arrays.sort(a); //进行排序
for(int i: a){
System.out.print(i);
}
//2冒泡排序法
public static int[] bubbleSort(int[] args){//冒泡排序算法
for(int i=0;i<args.length-1;i++){
for(int j=i+1;j<args.length;j++){
if (args[i]>args[j]){
int temp=args[i];
args[i]=args[j];
args[j]=temp;
}
}
}
return args;
}
//3选择排序法
public static int[] selectSort(int[] args){//选择排序算法
for (int i=0;i<args.length-1 ;i++ ){
int min=i;
for (int j=i+1;j<args.length ;j++ ){
if (args[min]>args[j]){
min=j;
}
}
if (min!=i){
int temp=args[i];
args[i]=args[min];
args[min]=temp;
}
}
return args;
}
//4插入排序法
public static int[] insertSort(int[] args){//插入排序算法
for(int i=1;i<args.length;i++){
for(int j=i;j>0;j--){
if (args[j]<args[j-1]){
int temp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}else break;
}
}
return args;
}
第2个回答  2017-03-21
public class Test {
public static void main(String[] args) {
int [] arr = {12,33,30,71,9,4,44};
mySort(arr,0,arr.length-1,"asc");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
/**
* 对一维数组排序的方法
* @param arrs要排序的数组
* @param low 从数组的第一位开始
* @param high从数组的最后位结束
* @param type排序的方式 升序/降序
*/
public static void mySort(int [] arrs,int low,int high,String type){
int lo=low;
int hi=high;
if (lo>=hi) {
return;
}else{
boolean flag=false;
while (lo<hi) {
if ("asc".equals(type)?arrs[lo]>arrs[hi]:arrs[lo]<arrs[hi]) {
int temp=arrs[lo];
arrs[lo]=arrs[hi];
arrs[hi]=temp;
flag=!flag;
}else{
if (flag) {
lo++;
}else{
hi--;
}
}
}
lo--;
hi++;
mySort(arrs,low,lo,type);
mySort(arrs,hi,high,type);

}
}
}
这是效率快的排序方法(二分法) 对应的参数说明你看看 希望能帮到你!