JAVA選擇排序和冒泡排序

選擇排序

拿第一個的變量依次和之後的變量進行比較,如果小於第一個變量則交換,
第二次拿第二個變量依次和之後的變量進行比較,如果小於第二個變量則交換,
以此類推。。。

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]);
				}
			}
		}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章