選擇排序
拿第一個的變量依次和之後的變量進行比較,如果小於第一個變量則交換,
第二次拿第二個變量依次和之後的變量進行比較,如果小於第二個變量則交換,
以此類推。。。
public static void selectSort(int[] arr) {
for(int x=0;x<arr.length-1;x++) {//沒有必要遍歷到最後一個角標,最後一個單獨存在,位置也就確定了。
for(int y=x+1;y<arr.length;y++) {//y表示的是之後的比較變量,所以要取x+1
if(arr[x]>arr[y]) {
int temp =arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
冒泡排序
相鄰的兩個元素 進行比較,如果符合條件則換位,第一次,最值出現在最後一位,
每一次都是從第一個變量開始比較,
public static void bubbleSort(int[] arr) {
for(int x=0;x<arr.length-1;x++) {
for(int y=0;y<arr.length-x-1;y++) {//-x讓每一次比較元素減少,-1避免角標越界
if(arr[y]>arr[y+1]) {
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
結果
實際代碼中,直接使用java內部的排序功能,直接調用Arrays.sort(arr);即可。
package com.hira;
import java.util.*;
public class ArrayDemo3 {
public static void main(String[] args) {
int[] arr= {1,19,5,2,9,21,11};
printArray(arr);
//selectSort(arr);
//bubbleSort(arr);
Arrays.sort(arr);
printArray(arr);
}
//定義一個功能,用於打印數組中的元素,元素間用逗號隔開
public static void printArray(int[] arr) {
for(int x=0;x<arr.length;x++) {
if(x!=arr.length-1) {
System.out.print(arr[x]+",");
}else {
System.out.println(arr[x]);
}
}
}