A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    学习Java基础的时候,碰到了这个问题,代码如下
import java.util.Arrays;
public class InsertSort{
        public static void main(String args[]){
                int array[] = {3,2,6,7,32,234,654,7278,788,9453};
                array = insertSort(array);
                String s = Arrays.toString(array);
                System.out.println(s);
        }
        public static int[] insertSort(int array[]){
               
                for(int i = 1;i < array.length;i++){
                        int temp = array[i];//取出第二个数,拿它与第一个数比较,把较小的放在队首
                        for(int j = i;j > 0 && j < array[j - 1];j--){
                                array[j] = array[j - 1];
                        }
                        array[i - 1] = temp;
                }
                return array;
        }
       
}

运行结果:[2,2,6,6,6,6,654,654,9453,7278]

请问怎么写这个算法呢?

3 个回复

倒序浏览
import java.util.Arrays;



public class Hmpp {
       
        public static void main(String args[]){
                int array[] = {3,2,6,7,32,234,654,7278,788,9453};
                array = insertSort(array);
                String s = Arrays.toString(array);
                System.out.println(s);
        }
        public static int[] insertSort(int array[]){
               
                for(int i = 0;i < array.length;i++){
                       
                    for(int j = i+1;j<array.length-1;j++){
                    if(array[j]<array[i]){
                            int temp = array[i];
                            array[i]= array[j];
                            array[j]=temp;
                    }       
                           
                    }  
                }
                return array;
        }
        
}


你的 int temp = array[i];//取出第二个数,拿它与第一个数比较,把较小的放在队首    这一行导致重复的  
回复 使用道具 举报
qijia004 发表于 2016-4-5 21:22
import java.util.Arrays;

谢谢啦!!
回复 使用道具 举报
等你学到了  选择排序你就会觉得很简单了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马