本文目錄一覽:
- 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();
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306563.html