两个Java排序的小问题以及一个问答题!不能使用break

来源:百度知道 编辑:UC知道 时间:2024/06/07 23:27:33
两个Java排序的小问题以及一个问答题!不能使用break

第一个 用插入法
public static int[] insertionSort(int[] a) {
int n = a.length;
for (int i = 1; i < n; i++) {
int temp = a[i];
int j;
for (j = i - 1; j >= 0 && temp < a[j]; j--) {
a[j + 1] = a[j];
}
a[j + 1] = temp;
}
return a;
}
}
来重新排序
int nombres[] = new int [10];
for ( int i=0; i<nombres.length ; i ++) {
nombres[1] = nombres.length-i ;
}

第二个 是用另一种方法来排序 好像叫2分法 "我们可以改进上面的排序法,用表格中间的元素把表格分成前后两部分并对它们进行排序. 然后我们可以把新的元素放到已排序好的元素的后面或前面 这样可以减少一半的元素移动次数 以这种方式修改第一题里的程序"

第三个 是问题答 问插入法里 进行的比较次数最大会是多少 ? 然后写一下这种排序法的循环次数上有什么特别的地方

求一二的代码和第三题的问题答案谢谢
必须得用这个{
int nombres[] = new int[10];
for(int i=0;i <nombres.length;i++)
{nombres[i]=nombres.length-i;
}来写,我写了一个,不知道哪出错了,谁给指导一下?
import java.util.*;
public class text
{
public static void main(Stri

import java.util.*;
public class text
{
public static int[] insertionSort(int[] nombres) {
int n = nombres.length;

int nombres[] = new int[10];
for(int i=0;i <nombres.length;i++)
{nombres[i]=nombres.length-i;
int j;

for (j = i - 1; j >= 0 && temp < a[j]; j--) {
a[j + 1] = a[j];
}
a[j + 1] = temp;
}
return a;
}
} }
我也不是很会,我也做了做试试不知道对不对,嘻嘻。。。。

4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444

代码写的太难读了,简直就是垃圾,建议你先看看代码规范和命名法....