黑马程序员技术交流社区

标题: 这样写插入排序为什么会出错 [打印本页]

作者: 董改名    时间: 2016-4-5 17:59
标题: 这样写插入排序为什么会出错
    学习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]

请问怎么写这个算法呢?
作者: qijia004    时间: 2016-4-5 21:22
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];//取出第二个数,拿它与第一个数比较,把较小的放在队首    这一行导致重复的  

作者: 董改名    时间: 2016-4-5 21:39
qijia004 发表于 2016-4-5 21:22
import java.util.Arrays;

谢谢啦!!
作者: qijia004    时间: 2016-4-5 22:48
等你学到了  选择排序你就会觉得很简单了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2