Java-选择排序算法

此页面是否是列表页或首页?未找到合适正文内容。

Java-选择排序算法

标签:sizestringsystempac描述索引class自己算法

我一定要掌握一些基本的排序算法,对,没错,说到做到,今天学习了选择排序算法。

一、算法描述

首先找到数组中的最小的那个元素,把它和数组的第一个元素位置交换(如果第一个元素是最小元素那么它就和自己交换)。在剩下的元素中找到最小的元素,将它和第二个元素交换位置,如此重复,正道将整个元素排序完成,这种叫做选择排序,就是不断地徐泽剩下元素中的最小者。

举个栗子:

原数组:5, 2 , 9 , 6 , 3(第一趟选择最小数进行交换)

第一趟:2, 5 , 9 , 6 , 3

第二趟:2, 3 , 9 , 6 , 5

第三趟:2, 3 , 5 , 6 , 9

第四趟:2, 3 , 5 , 6 , 9

二、算法复杂度分析

平均时间复杂度:O(n^2)

空间复杂度:O(1)(用于交换和记录索引)

稳定性:不稳定(如[5 , 5 , 3]第一趟将5和3交换,倒置第一个5挪到第二个5后面)

三、算法实现(NO BB Show Your Code)

1 package cn.zpoor.Test;
2 /**
3 * @author 薛定谔的猫
4 * 选择排序实现*/
5 public class Selection {
6 public static void main(String[] args) {
7 int[] arr = {5,2,9,6,3};
8 System.out.println(\”选择排序之前:\”);
9 for(int num:arr) {
10 System.out.print(num+ \” \”);
11 }
12
13 //选择排序的优化
14 for(int i = 0;i<arr.length-1;i++) {
15 int k = i;//记录值
16 for(int j = k+1;j<arr.length;j++) {//选最小的索引值
17 if (arr[j]<arr[k]) {
18 k = j;//记录找到的最小值的索引值

作者: 电脑大师

为您推荐

返回顶部