SelectSort 选择排序

# SelectSort选择排序_Python实现
def select_sort(li):
    for i in range(len(li)):
        min_index = i  # 此处确定刚刚所排序好的最小值的次序
        for j in range(i+1, len(li) ): # 此处range最大值为index最高位数+1, 因为遍历是从i+1开始和i对比.
            if li[j] < li[min_index]:
                min_index = j
        li[i], li[min_index] = li[min_index], li[i]
    return li

list = [1, 55, 98984, 65, 165, 356, 54, 3, 645, 74, 64, 35]

li = select_sort(list)

print(li)

 

选择排序特征:

双遍历
从头开始, 定义变量最小值为遍历次数i坐标所在值.(末尾开始则定义最大值)
用最小值依次比较, 更小者替换.
一轮子遍历后, 变量为列表最小, 保存i位置.
下次遍历时从i+1开始,遍历剩下所有最小值.

选择排序和冒泡排序具有非常高的相似度.都是双遍历.
不同之处在于,
冒泡排序同时对比两个相邻, 满足交换位置, 不设置变量.
选择排序, 定义变量, 每次拿出一个与其, 满足条件则替换变量.

原文地址:https://www.cnblogs.com/jrri/p/12099917.html

时间: 2024-11-02 21:41:47

SelectSort 选择排序的相关文章

每天学点java_java选择排序

package com.czj; public class SelectSort { /** * 选择排序,对sortArray传入的数组进行从小到大排序. * 思路就是 找到数组中最小的值,放到数组第一个位置,然后找到第二个最小值,放到第二个位置 * @param sortArray */ public void selectSort(int[] sortArray){ int last=sortArray.length; //last为数组长度 for(int i=0;i<last;i++)

选择排序(Selection sort)

选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 简单的可以理解为:将整个数组视为虚拟的有序区和无序区,重复的遍历数组,每次遍历从无序区中选出一个最小(或最大)的元素,放在有序区的最后,每一次遍历排序过程都是有序区元素个数增加,无序区元素个数减少的过程,直到无序区元素个数位0. 选择排序的

排序算法-选择排序(Java)

package com.rao.linkList; import java.util.Arrays; /** * @author Srao * @className SelectSort * @date 2019/12/4 11:27 * @package com.rao.linkList * @Description 选择排序 */ public class SelectSort { /** * 选择排序 * @param arr */ public static void selectSor

golang数据结构之选择排序

//SelectSort 选择排序 func SelectSort(arr *[7]int) { for i := 0; i < len(arr); i++ { tmp := arr[i] index := i for j := i + 1; j < len(arr); j++ { if (*arr)[j] < tmp { tmp = (*arr)[j] index = j } } if index != i { (*arr)[index], (*arr)[i] = (*arr)[i],

排序算法ONE:选择排序SelectSort

1 /** 2 *选择排序: 3 * 对冒泡排序的一个改进 4 * 进行一趟排序时,不用每一次都交换,只需要把最大的标示记下 5 * 然后再进行一次交换 6 */ 7 public class SelectSort 8 { 9 /** 10 *选择排序主方法 11 * 12 */ 13 public static void selectSort(int[] resouceArr) 14 { 15 for(int i = resouceArr.length - 1 ; i >= 0 ; i-- )

选择排序SelectSort

/** * * @author Administrator * 功能:选择排序法 */ package com.test1; import java.util.Calendar; public class SelectSort { public static void main(String[] args) { // TODO Auto-generated method stub //int[] arr = { 1, 6, 0, -1, 9, -100, -90 }; int[] arr = n

简单选择排序SelectSort

package com.cc.dataconsttuct.com; /*** * 简单选择排序:令A[0,n-1]有n个数据元素的数组,将数组A排列为一个非降序的有序数组: * 算法:首先在n个元素中找到最小元素,将其放在A[0]中,然后将剩下的n-1个元素中找到最小的放在A[1]中,这个过程不断进行下去.... * @author caocx * */public class SelectSort { public static void main(String[] args) { // TO

数据结构-选择排序

选择排序 1.选择排序 //堆排序,向下调整子函数 void AdjustDown(int *a, size_t size, size_t root) { size_t parent = root; size_t child = parent * 2 + 1; while (child < size) { //选择孩子节点中较大的节点,与父亲节点交换 if (child + 1 < size&&a[child + 1] > a[child]) { ++child; } i

C语言选择排序

#include <stdio.h> //选择排序 void selectSort(int a[],int len){          //外层循环控制趟数,每一趟把一个最小数放到没有排序的序列第一个位置     int min;//保存最小的数的下标     for (int i=0; i<len-1; i++) {                  //假设一个最小值         min = i;                  //找实际的最小值的下标         fo