十大排序演算法之選擇排序

2021-08-28 20:04:25 字數 730 閱讀 1571

選擇排序也是一種o(n ^ 2)時間複雜度的排序演算法,選擇排序是每一次迴圈都將找到最小值,依次將最小值、次小值分別從左至右進行排序。以下是具體實現過程,其中使用的工具類這篇部落格已經給出,(

import cn.zjut.util.sorttestutil;

public class selectsort }}

這種選擇排序,每一次只能找最小值,可以對其進行優化,每一次迴圈找乙個最小值和最大值,頭尾同時進行,因此需要兩個標定點分別指向頭尾元素。以下是優化後的選擇排序實現過程

import cn.zjut.util.sorttestutil;

public class selectsortimprove

sorttestutil.swap(arr, minindex, left);

sorttestutil.swap(arr, maxindex, right);

left++;

right--;}}

}下面是測試**,測試資料是10000個資料,分別對隨機數組,和近乎有序的陣列進行測試

import cn.zjut.util.sorttestutil;

public class main

}測試結果如下

根據結果,雙路選擇排序時間效率優於簡單選擇排序 。以上整個過程就是選擇排序的實現過程。

十大排序演算法 選擇排序

原理 第一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小 大 元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個數為零。工具類public class utils 用於交換陣列兩個下標的位置 static void...

十大排序演算法之選擇排序2

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。2.1 演算法描述 n個記錄的直接選擇排序可...

十大排序之選擇排序《Blind Stab》

選擇排序 public class choose for int i 0 i arr.length 1 i int temp arr i arr i arr index arr index temp for int i 0 i arr.length i 分析 n個資料,進行選擇排序,順序若是從小到大...