黑马程序员技术交流社区
标题:
这样写插入排序为什么会出错
[打印本页]
作者:
董改名
时间:
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