十大排序算法之选择排序
生活随笔
收集整理的這篇文章主要介紹了
十大排序算法之选择排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
選擇排序
本文采用Java書寫選擇排序,其他語言類似可以借鑒著寫- 思想:從待測數據中找到最小(大)值放在左端,然后再從剩下的待測數據中依次重復執行此操作。每次都選擇最小的元素,確定個元素的位置。因此被稱為選擇排序。
- 效果圖:下面效果圖可形象表現出選擇排序的過程。
算法的復雜度和穩定性
- 穩定性:
選擇排序值相等時不交換,因此具有穩定性 - 復雜度:
這里僅說明時間復雜度為:O(N^2)
代碼實現
/*** @Description: 選擇排序* @ProjectNmae: gitTest* @PackageName: Sort* @ClassName: SelectionSort* @Author: Y-peak* @Date: 2021.08.26 09:07 星期四*/public class SelectionSort {public static void selectionSort(int[] arr){if(arr==null||arr.length<2)return;for (int i = 0; i < arr.length - 1; i++) {int minIndex = i;for (int j = i+1; j < arr.length; j++) {//minIndex = arr[j]<arr[minIndex]?j:minIndex;if (arr[j] < arr[minIndex])minIndex = j;}swap(arr,i, minIndex);}}public static void swap(int[] arr, int i, int j){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;} }總結
以上是生活随笔為你收集整理的十大排序算法之选择排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十大排序算法之冒泡排序
- 下一篇: 十大排序算法之插入排序