选择排序zzz
//***************************************************************選擇排序
package a;/*** @author 真他喵的學不動咯* @create 2022-08-05--22:14*/public class selectsort {public static void main(String[] args){int arr[] ={12,52,1,325,45,0,5,2};print(arr);System.out.println("*****************************");seleceso(arr);print(arr);}public static void seleceso(int[] arr){
//此處的形參為傳入一個int[] arr,否則后面的arr全部爆紅if(arr==null||arr.length<1/2){return;//如果數組長度為0為1,則直接返回}//選擇排序的方法//如果數組的長度非0非1//0~N-1//1~N-1//2~N-1//i~N-1,i表示從左側開始的索引//找到i~N-1中的最小值for(int i=0;i<arr.length;i++){int minvalueindex=i;//設最左側的數是最小值//從i+1開始向右搜索,直到N-1for(int j=i+1;j<arr.length;j++){//選出最小值所在的索引minvalueindex=arr[j]<arr[minvalueindex]?j:minvalueindex;//如果找到的值比當前最小值小,則雙方互換索引//變換的是索引,比較的是元素值}//因為swap交換:輸入是索引i,j 交換arr[i],arr[j]的值swap(arr,i,minvalueindex);//交換索引為i,minvalue的arr[i],arr[minvalue]的值}}//交換的方法public static void swap(int[] arr,int i,int j){//此處寫的是輸入是索引i,j 交換arr[i],arr[j]的值int temp=arr[i];arr[i]=arr[j];arr[j]=temp;}//打印數組的方法public static void print(int[] arr){for(int i=0;i<arr.length;i++){System.out.print(arr[i]+"\n");}}
總結
- 上一篇: Linux运维微信群,新闻|Linux
- 下一篇: ZzZ