经典排序算法——选择排序
2018-02-05 09:38
190 查看
public class ChoosSort { public static int[] selection_sort(int[] arr){ int i, j, min, temp, len = arr.length; for (i = 0; i < len - 1; i++) { //假定当前下标的数值为最小值 min = i; for (j = i + 1; j < len; j++){ //依次与后一位进行比较,一直找到后续队列中最小的数值,并获得它的下标值,并设置为最小值 if (arr[min] > arr[j]) min = j; } //将当前的值与后续队列中找到的最小数值进行交换,再进行下一轮循环 temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; System.out.println(Arrays.toString(arr)); } return arr; } public static void main(String[] args) { //对于有序数组,依旧进行同样数量级的比较,时间复杂度为O(n^2) int[] arr={9,8,7,6,5,4,3,2,1}; selection_sort(arr); System.out.println("---------------------"); //对于有序数组,依旧进行同样数量级的比较,时间复杂度为O(n^2),有优化空间 int[] arr2={1,2,3,4,5,6,7,8,9}; selection_sort(arr2); } }
[1, 8, 7, 6, 5, 4, 3, 2, 9] [1, 2, 7, 6, 5, 4, 3, 8, 9] [1, 2, 3, 6, 5, 4, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] --------------------- [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]
相关文章推荐
- 经典排序算法 - 选择排序
- 【数据结构】Java实现各类经典排序算法——选择排序、冒泡排序
- 经典排序算法(三)选择排序--C++
- 【经典排序算法】选择排序、堆排序
- 经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
- 经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
- 经典排序算法----选择排序算法及交换两个数据的正确实现
- 经典排序算法(二)选择排序
- 经典排序算法系列之二:选择排序
- 经典排序算法--选择排序
- 经典排序算法python回顾之二 选择排序
- 经典排序算法回顾:选择排序,快速排序
- 选择排序
- 单链表排序之选择排序(赞)
- 【8086汇编】基础排序之选择排序
- 排序算法-选择排序
- 选择排序
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- 选择、插入排序小程序
- 常见排序算法——选择排序、冒泡排序、插入排序和原地排序