Java陣列的冒泡、選擇排序
阿新 • • 發佈:2018-12-16
文章目錄
氣泡排序
原理:相鄰兩元素兩兩比較,大的向後放,當完成第一次後最大的值出現在陣列最大索引處。 同理一直重複此操作,陣列便可按大到小排序。 注意第二輪比較時可以不用再繼續比較最後一組資料(最後一組資料已經是最大的資料了)。 氣泡排序演算法例項:
package test05_paixu;
//氣泡排序
public class ArrayBubbleSort {
public static void main(String[] args) {
int []a= {15,78,21,65,54,13};
bubbleSort(a);
arrayPrint (a);
}
public static void bubbleSort(int []a) {
for(int i=0;i<a.length-1;i++) {
for(int y=0;y<a.length-1-i;y++) {
if(a[y]>a[y+1]) {
int temp=a[y];
a[y]=a[y+1];
a[y+1]=temp;
}
}
}
}
public static void arrayPrint(int []a) {
System.out.print("["+a[0]) ;
for(int i=1;i<a.length;i++)
{
System.out.print(","+a[i]);
}
System.out.println("]");
}
}
選擇排序
原理 :從0元素開始,依此和後面元素比較,把小的向前放,完成第一次後小的在最前面 同理一直重複此操作,陣列便可按大到小排序。 注意第二次可以不用比較第0位的資料 選擇排序演算法例項
package test05_paixu;
//選擇排序
public class ArraySelectSort {
public static void main(String[] args) {
int []a= {15,78,21,65,99,13};
selectSort(a);
arrayPrint(a);
}
public static void selectSort(int []a) {
for(int x=0;x<a.length-1;x++) {
for(int y=x;y<a.length;y++) {
if(a[x]>a[y]) {
int temp=a[y];
a[y]=a[x];
a[x]=temp;
}
}
}
}
public static void arrayPrint(int []a) {
System.out.print("["+a[0]);
for(int i=1;i<a.length;i++)
{
System.out.print(","+a[i]);
}
System.out.println("]");
}
}