选择排序——1简单选择排序实现

public void SelectSort(int[] ary)
        {
            // 需要遍历获得最小值的次数
            for (int i = 0; i < ary.Length - 1; i++)
            {
                int temp = 0;
                int index = i; // 用来保存最小值得索引

                //在后面的序列中,寻找最小的数
                for (int j = i + 1; j < ary.Length; j++)
                {
                    if (ary[index] > ary[j])
                    {
                        index = j;
                    }
                }

                //交换位置
                temp = ary[index];
                ary[index] = ary[i];
                ary[i] = temp;
            }
        }

简单选择排序是每次选择最小的元素,与当前位置上的元素交换。

时间: 2024-08-11 09:43:27

选择排序——1简单选择排序实现的相关文章

经典排序算法--简单选择排序

算法简介 简单选择排序是一种选择排序. 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止. 白话理解 依然已排队为例,在排队时,有的老师可能会选择这样排序,先在一列中选出最矮的,放在第一位,然后选出第二矮的,放在第二位.队伍完成排序.而这就是选择排序的思想. 简单排序处理流程 (1)从待排序序列中,找到关键字最小的元素: (2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换: (3)从余下的 N - 1 个元素中,找出关键字最小

排序——直接选择排序(简单选择排序)

直接选择排序也称简单选择排序,是一种相对简单的排序算法,它的基本思想是:从一列数中找出最小的,和第一个交换:剩下的重新找出最小的,和这列数的第二个交换,......一直进行n-1次比较之后,该数列已经为有序数列了. 例如:已知一组无序数列:6 3 5 1 4 2 9 第一次:[6 3 5 1 4 2 9] 最小数为:1 第二次:1 [3 5 6 4 2 9] 最小数为:2 第三次:1 2 [5 6 4 3 9] 最小数为:3 第四次:1 2 3 [6 4 5 9] 最小数为:4 第五次:1 2

排序之简单选择排序

前言 本篇博客是在伍迷兄的博客基础上进行的,其博客地址点击就可以进去,里面好博客很多,我的排序算法都来自于此:一些数据结构方面的概念我就不多阐述了,伍迷兄的博客中都有详细讲解,而我写这些博客只是记录自己学习过程,加入了一些自己的理解,同时也希望给别人提供帮助. 基本思想 选择排序的基本思想是每一趟在n-i+1(i=1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列的第i个记录.我们这里先介绍的是简单选择排序法.简单选择排序法(Simple Selection Sort)就是通过n-i次

【数据结构之八大内排序】选择排序(简单选择,堆排序)

简单选择 不稳定 最差时间:O(n) 平均时间:O(n) 最好时间:O(n) 空间:O(1) #include <stdio.h> #define Swap(x,y,t) ((t)=(x),(x)=(y),(y)=(t)) #define MaxSize 100 typedef struct list { int Size,MaxList; int Elements[MaxSize]; }List; List CreateList(int n,int max) { List ls ; int

排序五 简单选择排序

要点 简单选择排序是一种选择排序. 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止. 简单排序处理流程: ( 1 )从待排序序列中,找到关键字最小的元素:( 2 )如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换:( 3 )从余下的 N - 1 个元素中,找出关键字最小的元素,重复( 1 ).( 2 )步,直到排序结束. 如图所示,每趟排序中,将当前第 i 小的元素放在位置 i 上. 核心代码 public void selec

排序之选择排序:简单选择+堆排序

一.简单选择排序 1.思想:每遍历一次都记住了当前最小(大)元素的位置,最后仅需一次交换操作即可将其放到合适的位置.与冒泡排序相比,移动数据次数少,节省时间 ,性能优于冒泡排序. 2.时间复杂度: 最好:O(N2),正序 最坏:O(N2),逆序 平均:O(N2) 3.辅助空间:O(1) 4.稳定性:不稳定,交换过程中可能打乱顺序 5.适用场合:n小的情况 public static void selectSort(int[] a) { int i,j,min,t; for(j = 0;j < a

4.3_8种常用排序算法3(选择排序:简单选择排序+堆排序)

[简单选择排序] package com.sort.demo3; import java.util.Arrays; /** * 简单选择排序 */ public class SelectSort { public static void main(String[] args) { int[] arr = new int[]{1,4,5,7,3,9,8,0,2,6}; System.out.println(Arrays.toString(arr)); selectSort(arr); System

C语言排序算法——简单选择排序算法

冒泡排序算法的思想是不断的交换,通过交换完成最终的排序. 选择排序的基本思想是每一趟在n-i+1个记录中选取最小的记录,作为第i个的记录. 1 void SimpleSelectSort(int *p) 2 { 3 int i,j,min; 4 for(i=0;i<10;i++) 5 { 6 min=i;    //将当前下标定义为最小下标 7 for(j=i+1;j<10;j++) 8 { 9 if(p[min>p[j]])    //如果有小于当前最小值的 10 { 11 min=j

选择排序-简单选择排序

代码 [3, 1, 5, 7, 2, 4, 9, 6]--把全部的最小的数(1)的和第 1 个数(3)交换位置 [1, 3, 5, 7, 2, 4, 9, 6]--把余下的最小的数(2)的和第 2 个数(3)交换位置 [1, 2, 5, 7, 3, 4, 9, 6]--把余下的最小的数(3)的和第 3 个数(5)交换位置 [1, 2, 3, 7, 5, 4, 9, 6]--把余下的最小的数(4)的和第 4 个数(7)交换位置 第五轮不交换-----把余下的最小的数(5)的和第 5 个数(5)交换