选择排序-Python & Java】的更多相关文章

选择排序:1.找出最小的数值放在第一位2.找出剩余数据中最小的数值放在第二位,以此类推,直到最后一个数值 算法的时间复杂度为:O(n) ''' 选择排序: 1.找出最小的数值放在第一位 2.找出剩余数据中最小的数值放在第二位,以此类推,直到最后一个数值 算法的时间复杂度为:O(n) ''' def find_min(list): min = list[0] minIndex = 0 for i in range(len(list)): if(list[i] < min): min = list[…
选择排序Python实现 import random # 生成待排序数组 a=[random.randint(1,999) for x in range(0,36)] # 选择排序 def selectionSort(array): i=0 while i<len(array)-1: min = i j = i+1 while j<len(array): if array[min] > array[j]: min = j j = j+1 if i != min: array[i],arr…
选择排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; /** * * @title SelectSort * @describe 选择排序 * @author 张富昌 * @date 2016年10月1日下午4:13:50 */ public class SelectSort_1 { // 简单选择排序的第 i 趟是从(elem[i],elem[i+1],...,elem[n-1])选择第 i小的元素,并将此元素放到 elem[i]: // 简单…
Java 实现 package common; public class SimpleArithmetic { /** * 选择排序 * 输入整形数组:a[n] [4.5.3.7] * 1. 取数组编号为i(i属于[0 , n-2])的数组值 a[i],即第一重循环 * 2. 假定a[i]为数组a[k](k属于[i,n-1])中的最小值a[min],即执行初始化 min =i * 3. 取数组编号为m(m属于[i+1,n-1])的数组值 a[m],即第二重循环 * 4. 若 a[m] < a[m…
Java 实现 package common; public class SimpleArithmetic { /** * 选择排序 * 输入整形数组:a[n] [4.5.3.7] * 1. 取数组编号为i(i属于[0 , n-2])的数组值 a[i],即第一重循环 * 2. 假定a[i]为数组a[k](k属于[i,n-1])中的最小值a[min],即执行初始化 min =i * 3. 取数组编号为m(m属于[i+1,n-1])的数组值 a[m],即第二重循环 * 4. 若 a[m] < a[m…
1 package lsg.ap.select; import java.util.Random; public class SelectSort { //选择排序 /** *@author: 梁山广 * 2016年4月11日上午10:04:13 * @param a:需要尽行排序的数组 */ //选择排序 /* * 选择排序和冒泡排序差不多,只是冒泡排序在发现比它小的时候就交换,而选择排序是只 * 有在确定了最小的数据之后,才会发生交换.选择排序的基本思想:第i趟简单选择排序 * 是指通过n-…
选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 选择排序的主要优点与数据移动有关.如果某个元素位于正确的最终位置上,则它不会被移动.选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换.在所有的完全依靠交换去移动…
在网上搜索算法的博客,发现一个比较悲剧的现象非常普遍: 原理讲不清,混乱 啰嗦 图和文对不上 不可用,甚至代码还出错 我总结一个清晰不罗嗦版: 原理: 从数组头元素索引i开始,寻找后面最小的值(比i位置值小),进行交换: 索引i依次+1 选择排序时间复杂度选择排序的时间复杂度是O(N2).假设被排序的数列中有N个数.遍历一趟的时间复杂度是O(N),需要遍历多少次呢?N-1!因此,选择排序的时间复杂度是O(N2). 选择排序稳定性选择排序是稳定的算法,它满足稳定算法的定义.算法稳定性 -- 假设在…
已知一个数组 9.29.95.47.79.37.18.56.96.22 使用选择排序是数组有序 选择排序同样是一个运行时间为O(N²)的排序算法. 算法思想:(以从小到大为例) 9.29.95.47.79.37.18.56.96.22    数组元素 0.1.  2.  3.  4.  5.  6.  7.  8.  9      数组下标 选择排序是选择一个位置进行排序,将有序元素排放在数组最左边. 第一轮排序 选择数组的第一个位置上的元素开始与其他元素进行逐个比较,即index[0]与ind…
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…