美文网首页未分类
选择排序—简单选择排序

选择排序—简单选择排序

作者: vsu | 来源:发表于2018-09-19 17:44 被阅读0次

2018-09-19

思路:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,
依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。

public static void main(String[] args) {
        int arr[] = {3, 5, 7, 2, 4, 9, 1, 6, 10, 8};
        System.out.println("排序前:");
        System.out.println(Arrays.toString(arr));
        selectSort(arr);
        System.out.println("排序后:");
        System.out.println(Arrays.toString(arr));
    }

private static void selectSort(int[] arr) {
        for (int i=0; i<arr.length; i++){
            int min = i;
            for(int j=i+1; j<arr.length; j++){//找到最小值下标
                if(arr[min] > arr[j])
                    min=j;
            }
            swap(arr, min, i);
        }
    }

private static void swap(int[] arr, int k, int i){
        if (i == k) {
            return;
        }
        int temp = arr[i];
        arr[i] = arr[k];
        arr[k] = temp;
    }

改进--二元选择排序

思路:简单选择排序,每趟循环只能确定一个元素排序后的定位。
我们可以考虑改进为每趟循环确定两个元素(当前趟最大和最小记录)的位置,从而减少排序所需的循环次数。
改进后对n(n>=11)个数据进行排序,最多只需进行[n/2]趟循环即可。


相关文章

  • 选择排序-c语言描述

    选择排序分简单选择排序与堆排序两种,先介绍简单选择排序。1.简单选择排序在未排序的序列中找到最小(大)元素,存放到...

  • 基础算法|简单选择排序

    简单选择排序是一种排序算法,指在简单选择排序过程中,所需移动记录的次数比较少。简单选择排序是不稳定排序。 简单选择...

  • 常用排序算法(Python实现), 持续更新中

    一、非线性时间比较类排序 交换排序冒泡排序快速排序 插入排序简单插入排序希尔排序 选择排序简单选择排序堆排序 归并...

  • 给自己备份的排序代码

    交换排序 冒泡排序 快速排序 插入排序 直接插入排序 希尔排序 选择排序 简单选择排序 堆排序

  • 排序法

    排序分 内部排序和外部排序 内部排序: 插入排序:{直接插入排序,希尔排序} 选择排序:{简单选择排序,堆排序} ...

  • 算法与数据结构知识汇总(八、常见的八大排序算法)

    排序技术有:插入排序(直接插入排序、希尔排序)、选择排序(简单选择排序、堆排序)、交换排序(冒泡排序、快速排序)、...

  • IOS 常用算法

    一:排序算法 排序方式有插入排序,选择排序和交换排序三种。插入排序有直接插入排序和希尔排序。选择排序有简单选择排序...

  • 排序算法

    排序算法 非线性时间比较类排序 交换排序 冒泡排序 快速排序 插入排序 插入排序 希尔排序 选择排序 简单选择排序...

  • 七大排序算法总结

    题记: 直接插入排序(稳定)-->希尔排序 : 属于插入排序 简单选择排序(稳定)-->堆排序 :属于选择排序...

  • PHP 实现选择排序

    导语 这篇说下选择排序。 选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理...

网友评论

    本文标题:选择排序—简单选择排序

    本文链接:https://www.haomeiwen.com/subject/ofninftx.html