您的位置:

插入排序用java写,java中如何排序

本文目录一览:

基础的~java直接插入排序 求大虾指点~~~= =

说几个我认为错误的地方吧:

1、你不是double数组吗? 怎么用 int 来取值呢? " int m=n[i];//代码1"

2、代码3,4怎么都是给n[j] 赋值呢? 赋值两次?

3、"n[j]=n[0];//代码4" 这个是什么意思?

Java编程:简化的插入排序?

代码:(如果输入必须是有序数组,不然方法内要先排序)

结果:

java插入排序算法

import java.util.Arrays;

public class Insert {

public static void main(String[] args) {

int[] ary={8,3,7,1,9,4};

selectionSort(ary);

System.out.println(Arrays.toString(ary));

}

public static void selectionSort(int[] ary) {

int i,j,t;

for(i=1;iary.length;i++){

t=ary[i];

for(j=i-1;j=0tary[j];j--){

ary[j+1]=ary[j];

}ary[j+1]=t;

}

}

}

插入算法的原理是当要被插入的数比数组中元素小就放在他的前面,加了一个中间变量t,把数组元素先放那存着。如果成功插入就把插入数据放到对应的数组位置。然后下一个继续先放在t里面存着。直到最后一个数

java 插入排序 ,下面是一些代码,请大师写下剩下的代码 实现一下插入排序。

因为是要人为在控制台输入数字来排序,所以对于程序来说如果不设定一个值可以中断程序,那程序将无终止的,那 if( str.equals("x") )break; 这个就代表当用户在控制台输入 x 后,程序就停止了,不用再输入了。

插入法如下:(其中一部分) insert(arr,p,count); 这地方起码要把插入地方传进参数吧

int []arr = new int[25];

Scanner scan = new Scanner(System.in);

int count=0;

String aa="";

while(count 25){

aa =scan.next();

if(aa.equals("x")){

break;

}

int p = Integer.parseInt(aa); //注意转换异常

insert(arr,p,count);

count++;

}

for(int i=0;iarr.length;i++){

System.out.println("arr["+i+"]== "+arr[i]);

}

}

public static void insert(int[] a,int num,int count){

a[count] =num;

if(a !=null){

for(int i=1;ia.length;i++){

int temp = a[i],j=i;

if(a[j-1] temp){

while(j=1 a[j-1]temp){

a[j]=a[j-1];

j--;

}

}

a[j]=temp;

}

}

}

Java 直接插入排序法

比如数组[3,2,1,5]

这段处理就返回[1,2,3,5]

它的处理是从第二位开始依次跟前边的比,比前边的小就往前移动。

也就是[3,2,1,5]

[2,3,1,5]

[1,2,3,5]

(int j = i - 1; j = 0 temp array[j]; j--)

i是这次处理的下标,第一次是1,第二次是2,第三次是3,对应上边原数组里的2,1,5

处理开始时把下标i对应的值存在temp里,j表示的是i前边的下标,temp array[j]的时候说明i下标的值比前边的小,所以把小的值拿到前边去。

这么看是很抽象的,自己在本上写的数组,画一下处理过程会更有助于你理解。

JAVA实现插入排序

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();

}

}