public class InsertSort
成都创新互联-专业网站定制、快速模板网站建设、高性价比长白网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式长白网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖长白地区。费用合理售后完善,十余年实体公司更值得信赖。
{
static final int SIZE=10;
static void insertionSort(int[] a) //插入排序
{
int i,j,t,h;
for (i=1;ia.length;i++)
{
t=a[i];
j=i-1;
while(j=0 ta[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=t;
System.out.print("第"+i+"步排序结果:"); //输出每步排序的结果
for(h=0;ha.length;h++)
{
System.out.print(" "+a[h]); //输出
}
System.out.print("\n");
}
}
public static void main(String[] args)
{
int[] shuzu=new int[SIZE];
int i;
for(i=0;iSIZE;i++)
{
shuzu[i]=(int)(100+Math.random()*(100+1)); //初始化数组
}
System.out.print("排序前的数组为:\n"); //输出排序前的数组
for(i=0;iSIZE;i++)
{
System.out.print(shuzu[i]+" ");
}
System.out.print("\n");
insertionSort(shuzu); //排序操作
System.out.print("排序后的数组为:\n");
for(i=0;iSIZE;i++)
{
System.out.print(shuzu[i]+" "); //输出排序后的数组
}
System.out.print("\n");
}
}
什么狗蛋书,完全不知道在搞什么.
要排序直接用API里的Arrays工具类就好.要学原理那都是数学的问题.代码讲究不要重复发明轮子.
排序这种大众功能肯定已经有高手写好了效率非常高的.完全没有必要再去写
public class Test {
public static void main(String[] args) {
int[] source = { 1, 3, 2, 5, 12, 3, 123, 23, 2, 541, 1, 76, 76 };
Test test = new Test();
test.printArray(source);
test.insertSort(source);
test.printArray(source);
}
public void insertSort(int[] source) {
for (int i = 1; i source.length; i++) {
for (int j = i; (j 0) (source[j] source[j - 1]); j--) {
swap(source, j, j - 1);
}
}
printArray(source);// 输出插入排序后的数组值
}
private void swap(int[] source, int x, int y) {
int temp = source[x];
source[x] = source[y];
source[y] = temp;
}
public void printArray(int[] source) {
for (int i : source) {
System.out.print(i + " ");
}
System.out.println();
}
}
Java程序入口是main函数,
而main函数的参数必须是String[] args;
所以你要把函数名mian改成其他如sort,并新写一个main函数来调用他。
public static void main(String[] args){
}
说几个我认为错误的地方吧:
1、你不是double数组吗? 怎么用 int 来取值呢? " int m=n[i];//代码1"
2、代码3,4怎么都是给n[j] 赋值呢? 赋值两次?
3、"n[j]=n[0];//代码4" 这个是什么意思?