冒泡排序是比較經典的排序算法。代碼如下:
在新撫等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供網站設計、網站建設 網站設計制作按需求定制制作,公司網站建設,企業網站建設,品牌網站建設,營銷型網站建設,成都外貿網站制作,新撫網站建設費用合理。
for(int i=1;iarr.length;i++){
for(int j=1;jarr.length-i;j++){
//交換位置
} ? ?
拓展資料:
原理:比較兩個相鄰的元素,將值大的元素交換至右端。
思路:依次比較相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直至比較最后兩個數,將小數放前,大數放后。重復第一趟步驟,直至全部排序完成。
第一趟比較完成后,最后一個數一定是數組中最大的一個數,所以第二趟比較的時候最后一個數不參與比較;
第二趟比較完成后,倒數第二個數也一定是數組中第二大的數,所以第三趟比較的時候最后兩個數不參與比較;
依次類推,每一趟比較次數-1;
……
舉例說明:要排序數組:int[]?arr={6,3,8,2,9,1};?
for(int i=1;iarr.length;i++){
for(int j=1;jarr.length-i;j++){
//交換位置
} ? ?
參考資料:冒泡排序原理
方法一: package basic.javastu; public class NumberTest {
/** * 實現冒泡程序1 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int len=numb.length;
int i,j;
int temp;
System.out.println("排序前的數組各個值:");
for(i=0;ilen;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(numb[j]numb[j-1])
{
temp=numb[j];
numb[j]=numb[j-1];
numb[j-1]=temp;
}
}
}
System.out.println("排序后的數組各個值:");
for(i=0;ilen;i++)
{
System.out.print(numb[i]+"\t");
}
}
}
方法二: package basic.javastu; public class NumberTest2 {
/** * 實現冒泡程序2 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int leng=numb.length;
System.out.println("排序前的數組各個值:");
for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
swap(numb);
System.out.println("數組排序后:"); for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
} }
private static int[] swap(int[] numb) { int n2[]=numb; int len=n2.length; int i,j; int temp; for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(n2[j]n2[j-1])
{
temp=n2[j];
n2[j]=n2[j-1];
n2[j-1]=temp;
}
}
} return n2; } }
方法三: package basic.javastu; public class NumberTest3 {
/** * 實現冒泡程序2 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int leng=numb.length;
System.out.println("排序前的數組各個值:");
for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
swap(numb);
System.out.println("數組排序后:"); for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
} }
private static void swap(int[] numb) { int len=numb.length; int i,j; int temp; for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(numb[j]numb[j-1])
{
temp=numb[j];
numb[j]=numb[j-1];
numb[j-1]=temp;
}
}
} } }
// 排序
public class Array
{
public static int[] random(int n) //產生n個隨機數,返回整型數組
{
if (n0)
{
int table[] = new int[n];
for (int i=0; itable.length; i++)
table[i] = (int)(Math.random()*100); //產生一個0~100之間的隨機數
return table; //返回一個數組
}
return null;
}
public static void print(int[] table) //輸出數組元素
{
if (table!=null)
for (int i=0; itable.length; i++)
System.out.print(" "+table[i]);
System.out.println();
}
public static void insertSort(int[] table) //直接插入排序
{ //數組是引用類型,元素值將被改變
System.out.println("直接插入排序");
for (int i=1; itable.length; i++) //n-1趟掃描
{
int temp=table[i], j; //每趟將table[i]插入到前面已排序的序列中
// System.out.print("移動");
for (j=i-1; j-1 temptable[j]; j--) //將前面較大元素向后移動
{
// System.out.print(table[j]+", ");
table[j+1] = table[j];
}
table[j+1] = temp; //temp值到達插入位置
System.out.print("第"+i+"趟: ");
print(table);
}
}
public static void shellSort(int[] table) //希爾排序
{
System.out.println("希爾排序");
for (int delta=table.length/2; delta0; delta/=2) //控制增量,增量減半,若干趟掃描
{
for (int i=delta; itable.length; i++) //一趟中若干組,每個元素在自己所屬組內進行直接插入排序
{
int temp = table[i]; //當前待插入元素
int j=i-delta; //相距delta遠
while (j=0 temptable[j]) //一組中前面較大的元素向后移動
{
table[j+delta] = table[j];
j-=delta; //繼續與前面的元素比較
}
table[j+delta] = temp; //插入元素位置
}
System.out.print("delta="+delta+" ");
print(table);
}
}
private static void swap(int[] table, int i, int j) //交換數組中下標為i、j的元素
{
if (i=0 itable.length j=0 jtable.length i!=j) //判斷i、j是否越界
{
int temp = table[j];
table[j] = table[i];
table[i] = temp;
}
}
public static void bubbleSort(int[] table) //冒泡排序
{
System.out.println("冒泡排序");
boolean exchange=true; //是否交換的標記
for (int i=1; itable.length exchange; i++) //有交換時再進行下一趟,最多n-1趟
{
exchange=false; //假定元素未交換
for (int j=0; jtable.length-i; j++) //一次比較、交換
if (table[j]table[j+1]) //反序時,交換
{
int temp = table[j];
table[j] = table[j+1];
table[j+1] = temp;
exchange=true; //有交換
}
System.out.print("第"+i+"趟: ");
print(table);
}
}
public static void quickSort(int[] table) //快速排序
{
quickSort(table, 0, table.length-1);
}
private static void quickSort(int[] table, int low, int high) //一趟快速排序,遞歸算法
{ //low、high指定序列的下界和上界
if (lowhigh) //序列有效
{
int i=low, j=high;
int vot=table[i]; //第一個值作為基準值
while (i!=j) //一趟排序
{
while (ij vot=table[j]) //從后向前尋找較小值
j--;
if (ij)
{
table[i]=table[j]; //較小元素向前移動
i++;
}
while (ij table[i]vot) //從前向后尋找較大值
i++;
if (ij)
{
table[j]=table[i]; //較大元素向后移動
j--;
}
}
table[i]=vot; //基準值的最終位置
System.out.print(low+".."+high+", vot="+vot+" ");
print(table);
quickSort(table, low, j-1); //前端子序列再排序
quickSort(table, i+1, high); //后端子序列再排序
}
}
public static void selectSort(int[] table) //直接選擇排序
{
System.out.println("直接選擇排序");
for (int i=0; itable.length-1; i++) //n-1趟排序
{ //每趟在從table[i]開始的子序列中尋找最小元素
int min=i; //設第i個數據元素最小
for (int j=i+1; jtable.length; j++) //在子序列中查找最小值
if (table[j]table[min])
min = j; //記住最小元素下標
if (min!=i) //將本趟最小元素交換到前邊
{
int temp = table[i];
table[i] = table[min];
table[min] = temp;
}
System.out.print("第"+i+"趟: ");
print(table);
}
}
private static void sift(int[] table, int low, int high) //將以low為根的子樹調整成最小堆
{ //low、high是序列下界和上界
int i=low; //子樹的根
int j=2*i+1; //j為i結點的左孩子
int temp=table[i]; //獲得第i個元素的值
while (j=high) //沿較小值孩子結點向下篩選
{
if (jhigh table[j]table[j+1]) //數組元素比較(改成為最大堆)
j++; //j為左右孩子的較小者
if (temptable[j]) //若父母結點值較大(改成為最大堆)
{
table[i]=table[j]; //孩子結點中的較小值上移
i=j; //i、j向下一層
j=2*i+1;
}
else
j=high+1; //退出循環
}
table[i]=temp; //當前子樹的原根值調整后的位置
System.out.print("sift "+low+".."+high+" ");
print(table);
}
public static void heapSort(int[] table)
{
System.out.println("堆排序");
int n=table.length;
for (int j=n/2-1; j=0; j--) //創建最小堆
sift(table, j, n-1);
// System.out.println("最小堆? "+isMinHeap(table));
for (int j=n-1; j0; j--) //每趟將最小值交換到后面,再調整成堆
{
int temp = table[0];
table[0] = table[j];
table[j] = temp;
sift(table, 0, j-1);
}
}
public static void mergeSort(int[] X) //歸并排序
{
System.out.println("歸并排序");
int n=1; //已排序的子序列長度,初值為1
int[] Y = new int[X.length]; //Y數組長度同X數組
do
{
mergepass(X, Y, n); //一趟歸并,將X數組中各子序列歸并到Y中
print(Y);
n*=2; //子序列長度加倍
if (nX.length)
{
mergepass(Y, X, n); //將Y數組中各子序列再歸并到X中
print(X);
n*=2;
}
} while (nX.length);
}
private static void mergepass(int[] X, int[] Y, int n) //一趟歸并
{
System.out.print("子序列長度n="+n+" ");
int i=0;
while (iX.length-2*n+1)
{
merge(X,Y,i,i+n,n);
i += 2*n;
}
if (i+nX.length)
merge(X,Y,i,i+n,n); //再一次歸并
else
for (int j=i; jX.length; j++) //將X剩余元素復制到Y中
Y[j]=X[j];
}
private static void merge(int[] X, int[] Y, int m, int r, int n) //一次歸并
{
int i=m, j=r, k=m;
while (ir jr+n jX.length) //將X中兩個相鄰子序列歸并到Y中
if (X[i]X[j]) //較小值復制到Y中
Y[k++]=X[i++];
else
Y[k++]=X[j++];
while (ir) //將前一個子序列剩余元素復制到Y中
Y[k++]=X[i++];
while (jr+n jX.length) //將后一個子序列剩余元素復制到Y中
Y[k++]=X[j++];
}
public static void main(String[] args)
{
// int[] table = {52,26,97,19,66,8,49};//Array.random(9);{49,65,13,81,76,97,38,49};////{85,12,36,24,47,30,53,91,76};//;//{4,5,8,1,2,7,3,6};// {32,26,87,72,26,17};//
int[] table = {13,27,38,49,97,76,49,81}; //最小堆
System.out.print("關鍵字序列: ");
Array.print(table);
// Array.insertSort(table);
// Array.shellSort(table);
// Array.bubbleSort(table);
// Array.quickSort(table);
// Array.selectSort(table);
// Array.heapSort(table);
// Array.mergeSort(table);
System.out.println("最小堆序列? "+Array.isMinHeap(table));
}
//第9章習題
public static boolean isMinHeap(int[] table) //判斷一個數據序列是否為最小堆
{
if (table==null)
return false;
int i = table.length/2 -1; //最深一棵子樹的根結點
while (i=0)
{
int j=2*i+1; //左孩子
if (jtable.length)
if (table[i]table[j])
return false;
else
if (j+1table.length table[i]table[j+1]) //右孩子
return false;
i--;
}
return true;
}
}
/*
程序運行結果如下:
關鍵字序列: 32 26 87 72 26 17 8 40
直接插入排序
第1趟排序: 26 32 87 72 26 17 8 40
第2趟排序: 26 32 87 72 26 17 8 40
第3趟排序: 26 32 72 87 26 17 8 40
第4趟排序: 26 26 32 72 87 17 8 40 //排序算法穩定
第5趟排序: 17 26 26 32 72 87 8 40
第6趟排序: 8 17 26 26 32 72 87 40
第7趟排序: 8 17 26 26 32 40 72 87
關鍵字序列: 42 1 74 25 45 29 87 53
直接插入排序
第1趟排序: 1 42 74 25 45 29 87 53
第2趟排序: 1 42 74 25 45 29 87 53
第3趟排序: 1 25 42 74 45 29 87 53
第4趟排序: 1 25 42 45 74 29 87 53
第5趟排序: 1 25 29 42 45 74 87 53
第6趟排序: 1 25 29 42 45 74 87 53
第7趟排序: 1 25 29 42 45 53 74 87
關鍵字序列: 21 12 2 40 99 97 68 57
直接插入排序
第1趟排序: 12 21 2 40 99 97 68 57
第2趟排序: 2 12 21 40 99 97 68 57
第3趟排序: 2 12 21 40 99 97 68 57
第4趟排序: 2 12 21 40 99 97 68 57
第5趟排序: 2 12 21 40 97 99 68 57
第6趟排序: 2 12 21 40 68 97 99 57
第7趟排序: 2 12 21 40 57 68 97 99
關鍵字序列: 27 38 65 97 76 13 27 49 55 4
希爾排序
delta=5 13 27 49 55 4 27 38 65 97 76
delta=2 4 27 13 27 38 55 49 65 97 76
delta=1 4 13 27 27 38 49 55 65 76 97
關鍵字序列: 49 38 65 97 76 13 27 49 55 4 //嚴書
希爾排序
delta=5 13 27 49 55 4 49 38 65 97 76
delta=2 4 27 13 49 38 55 49 65 97 76 //與嚴書不同
delta=1 4 13 27 38 49 49 55 65 76 97
關鍵字序列: 65 34 25 87 12 38 56 46 14 77 92 23
希爾排序
delta=6 56 34 14 77 12 23 65 46 25 87 92 38
delta=3 56 12 14 65 34 23 77 46 25 87 92 38
delta=1 12 14 23 25 34 38 46 56 65 77 87 92
關鍵字序列: 84 12 43 62 86 7 90 91
希爾排序
delta=4 84 7 43 62 86 12 90 91
delta=2 43 7 84 12 86 62 90 91
delta=1 7 12 43 62 84 86 90 91
關鍵字序列: 32 26 87 72 26 17
冒泡排序
第1趟排序: 26 32 72 26 17 87
第2趟排序: 26 32 26 17 72 87
第3趟排序: 26 26 17 32 72 87
第4趟排序: 26 17 26 32 72 87
第5趟排序: 17 26 26 32 72 87
關鍵字序列: 1 2 3 4 5 6 7 8
冒泡排序
第1趟排序: 1 2 3 4 5 6 7 8
關鍵字序列: 1 3 2 4 5 8 6 7
冒泡排序
第1趟排序: 1 2 3 4 5 6 7 8
第2趟排序: 1 2 3 4 5 6 7 8
關鍵字序列: 4 5 8 1 2 7 3 6
冒泡排序
第1趟排序: 4 5 1 2 7 3 6 8
第2趟排序: 4 1 2 5 3 6 7 8
第3趟排序: 1 2 4 3 5 6 7 8
第4趟排序: 1 2 3 4 5 6 7 8
第5趟排序: 1 2 3 4 5 6 7 8
關鍵字序列: 38 26 97 19 66 1 5 49
0..7, vot=38 5 26 1 19 38 66 97 49
0..3, vot=5 1 5 26 19 38 66 97 49
2..3, vot=26 1 5 19 26 38 66 97 49
5..7, vot=66 1 5 19 26 38 49 66 97
關鍵字序列: 38 5 49 26 19 97 1 66
0..7, vot=38 1 5 19 26 38 97 49 66
0..3, vot=1 1 5 19 26 38 97 49 66
1..3, vot=5 1 5 19 26 38 97 49 66
2..3, vot=19 1 5 19 26 38 97 49 66
5..7, vot=97 1 5 19 26 38 66 49 97
5..6, vot=66 1 5 19 26 38 49 66 97
關鍵字序列: 49 38 65 97 76 13 27 49
0..7, vot=49 49 38 27 13 49 76 97 65
0..3, vot=49 13 38 27 49 49 76 97 65
0..2, vot=13 13 38 27 49 49 76 97 65
1..2, vot=38 13 27 38 49 49 76 97 65
5..7, vot=76 13 27 38 49 49 65 76 97
關鍵字序列: 27 38 65 97 76 13 27 49 55 4
low=0 high=9 vot=27 4 27 13 27 76 97 65 49 55 38
low=0 high=2 vot=4 4 27 13 27 76 97 65 49 55 38
low=1 high=2 vot=27 4 13 27 27 76 97 65 49 55 38
low=4 high=9 vot=76 4 13 27 27 38 55 65 49 76 97
low=4 high=7 vot=38 4 13 27 27 38 55 65 49 76 97
low=5 high=7 vot=55 4 13 27 27 38 49 55 65 76 97
關鍵字序列: 38 26 97 19 66 1 5 49
直接選擇排序
第0趟排序: 1 26 97 19 66 38 5 49
第1趟排序: 1 5 97 19 66 38 26 49
第2趟排序: 1 5 19 97 66 38 26 49
第3趟排序: 1 5 19 26 66 38 97 49
第4趟排序: 1 5 19 26 38 66 97 49
第5趟排序: 1 5 19 26 38 49 97 66
第6趟排序: 1 5 19 26 38 49 66 97
最小堆
關鍵字序列: 81 49 76 27 97 38 49 13 65
sift 3..8 81 49 76 13 97 38 49 27 65
sift 2..8 81 49 38 13 97 76 49 27 65
sift 1..8 81 13 38 27 97 76 49 49 65
sift 0..8 13 27 38 49 97 76 49 81 65
13 27 38 49 97 76 49 81 65
sift 0..7 27 49 38 65 97 76 49 81 13
sift 0..6 38 49 49 65 97 76 81 27 13
sift 0..5 49 65 49 81 97 76 38 27 13
sift 0..4 49 65 76 81 97 49 38 27 13
sift 0..3 65 81 76 97 49 49 38 27 13
sift 0..2 76 81 97 65 49 49 38 27 13
sift 0..1 81 97 76 65 49 49 38 27 13
sift 0..0 97 81 76 65 49 49 38 27 13
最大堆
關鍵字序列: 49 65 13 81 76 27 97 38 49
sift 3..8 49 65 13 81 76 27 97 38 49
sift 2..8 49 65 97 81 76 27 13 38 49
sift 1..8 49 81 97 65 76 27 13 38 49
sift 0..8 97 81 49 65 76 27 13 38 49
97 81 49 65 76 27 13 38 49
sift 0..7 81 76 49 65 49 27 13 38 97
sift 0..6 76 65 49 38 49 27 13 81 97
sift 0..5 65 49 49 38 13 27 76 81 97
sift 0..4 49 38 49 27 13 65 76 81 97
sift 0..3 49 38 13 27 49 65 76 81 97
sift 0..2 38 27 13 49 49 65 76 81 97
sift 0..1 27 13 38 49 49 65 76 81 97
sift 0..0 13 27 38 49 49 65 76 81 97
關鍵字序列: 52 26 97 19 66 8 49
歸并排序
子序列長度n=1 26 52 19 97 8 66 49
子序列長度n=2 19 26 52 97 8 49 66
子序列長度n=4 8 19 26 49 52 66 97
關鍵字序列: 13 27 38 49 97 76 49 81 65
最小堆序列? true
*/
/*
首先我們要先了解冒泡排序的原理!
冒泡排序:
每一輪選擇兩個相鄰數據進行比較,滿足條件交換位置,每一輪確定一個數的最終位置(這里我們假設從小到大排,那么每輪就是確定最大一個數的位置)
*/
public static void maoPao(int []arr)
{
//外層循環,控制比較的輪數。arr.length-1:比較的輪數永遠比數組的長度少1(例如,3個數我們比較兩次就能知道最大值是誰,4個數比較3次,5個四次,以此類推)
for(int i=0;iarr.length-1;i++)
? ?{
//內層循環控制每一輪比較的次數。arr.length-1-i:下一輪比較次數比上一輪少1(通過分析我們不難得出,第一輪比較arr.length-1次(此時i=0),第二輪比較arr.length-1-1(此時i=1),一次類推,每輪減少比較的次數正好就是i的值,所以內層循環比較次數為arr.length-1-i)
for(int j=0;jarr.length-1-i;j++)
{
? ?//相鄰的兩個元素進行比較,滿足條件交換位置
if(arr[j]arr[j+1])
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
??}
}
/*
下邊是一張比較圖,對數組[34,456,67,78,34,23,67]進行冒泡排序
第一輪,通過比較,相鄰交換,我們確定了最大值456的位置,那么第二輪456就不用再參與比較了;
以此類推,最后一輪正好比較第一個和第二個的位置,這樣就最終確定了整個數組元素的大小順序。
而這個比較過程就像在水中放一堆小球,越重的就越靠近水底,越輕的就越靠近水面一樣,整個過程交換并排序的過程就像是水中的氣泡從底向上溢的過程,所以稱作冒泡排序。
最后,總結一點,所有涉及for循環排序的題目,都記住一句話:外層循環控制比較輪數(所有元素比較一遍,稱為一輪),內層循環控每輪比較的次數。我們所要做的就是建立好外層循環和內層循環之間的關系(就像這里的i一樣,內外層循環共用了,但它在內外層循環的作用是不一樣的)
簡單的實現排序,可以參考如下的代碼
import?java.text.Collator;
import?java.util.Arrays;
import?java.util.Comparator;
import?java.util.Locale;
public?class?PYDemo?{
public?static?void?main(String[]?args)?{
String[]?names=?{"趙z子z龍l","劉l備b","關g羽y","張z飛f"};
System.out.println("排序前"+Arrays.toString(names));
Comparator?cpt?=?Collator.getInstance(Locale.CHINA);?
Arrays.sort(names,?cpt);
System.out.println("排序后"+Arrays.toString(names));
}
}
測試輸出
排序前[趙z子z龍l,?劉l備b,?關g羽y,?張z飛f]
排序后[關g羽y,?劉l備b,?張z飛f,?趙z子z龍l]
如果有一些非常用的漢字,生僻字等,建議使用一些jar包實現,比如pinyin4j
快速排序:
package org.rut.util.algorithm.support;
import org.rut.util.algorithm.SortUtil;
/**
* @author treeroot
* @since 2006-2-2
* @version 1.0
*/
public class QuickSort implements SortUtil.Sort{
/* (non-Javadoc)
* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
*/
public void sort(int[] data) {
quickSort(data,0,data.length-1);
}
private void quickSort(int[] data,int i,int j){
int pivotIndex=(i+j)/2;
//swap
SortUtil.swap(data,pivotIndex,j);
int k=partition(data,i-1,j,data[j]);
SortUtil.swap(data,k,j);
if((k-i)1) quickSort(data,i,k-1);
if((j-k)1) quickSort(data,k+1,j);
}
/**
* @param data
* @param i
* @param j
* @return
*/
private int partition(int[] data, int l, int r,int pivot) {
do{
while(data[++l]pivot);
while((r!=0)data[--r]pivot);
SortUtil.swap(data,l,r);
}
while(lr);
SortUtil.swap(data,l,r);
return l;
}
}
改進后的快速排序:
package org.rut.util.algorithm.support;
import org.rut.util.algorithm.SortUtil;
/**
* @author treeroot
* @since 2006-2-2
* @version 1.0
*/
public class ImprovedQuickSort implements SortUtil.Sort {
private static int MAX_STACK_SIZE=4096;
private static int THRESHOLD=10;
/* (non-Javadoc)
* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
*/
public void sort(int[] data) {
int[] stack=new int[MAX_STACK_SIZE];
int top=-1;
int pivot;
int pivotIndex,l,r;
stack[++top]=0;
stack[++top]=data.length-1;
while(top0){
int j=stack[top--];
int i=stack[top--];
pivotIndex=(i+j)/2;
pivot=data[pivotIndex];
SortUtil.swap(data,pivotIndex,j);
//partition
l=i-1;
r=j;
do{
while(data[++l]pivot);
while((r!=0)(data[--r]pivot));
SortUtil.swap(data,l,r);
}
while(lr);
SortUtil.swap(data,l,r);
SortUtil.swap(data,l,j);
if((l-i)THRESHOLD){
stack[++top]=i;
stack[++top]=l-1;
}
if((j-l)THRESHOLD){
stack[++top]=l+1;
stack[++top]=j;
}
}
//new InsertSort().sort(data);
insertSort(data);
}
/**
* @param data
*/
private void insertSort(int[] data) {
int temp;
for(int i=1;idata.length;i++){
for(int j=i;(j0)(data[j]data[j-1]);j--){
SortUtil.swap(data,j,j-1);
}
}
}
}
本文題目:java簡單排序源代碼,java排序代碼完整
分享網址:http://m.kartarina.com/article12/hddcgc.html
成都網站建設公司_創新互聯,為您提供網站設計公司、全網營銷推廣、企業建站、App設計、ChatGPT、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯