本文目录一览:
- 1、基础的~java直接插入排序 求大虾指点~~~= =
- 2、Java编程:简化的插入排序?
- 3、java插入排序算法
- 4、java 插入排序 ,下面是一些代码,请大师写下剩下的代码 实现一下插入排序。
- 5、Java 直接插入排序法
- 6、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();
}
}