选择排序法python详解_51CTO博客
一、选择排序的介绍选择排序(Selection sort)是一种简单直观的排序算法。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终
选择排序:两两比较大小,找出极值(极大值或极小值),放在固定的位置,这个固定的位置一般指的是某一端降序排列:n个数从左至右,索引从0开始到n-1,第一轮开始,假设索引0为最大数的索引,与后面的数两两依次比较,记录较大数的索引,此轮所有数比较完毕,将较大数的索引和索引0的数交换,如果大数位置就在索引0,不交换。第一轮比较完成后,位于索引0的数为最大值。第二轮,从索引1开始,与后面的数进行比较,找到
选择排序:简介选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。算法描述n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果。 ● 初始状态:无序区为R[1…n],有序区为空; ● 第i趟
一、选择排序(selection sort)选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,所以称为:选择排序。二、选择排序原理设第一个元素为比较元素,依次和后面的元素比较,比较完所有元素并找到最小元素,记录最小元素下标,和第0个下表元素进行交换。在未排序区域中,重复上述操作,以此类推找出
接前面两篇,今天继续讲选择排序选择排序(selection sort)先来看一下百度百科的定义:选择排序 是对 定位比较交换法(也就是冒泡排序) 的一种改进。选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。简单选择排序的基本思想:第1趟,在待排序记录r[1]~r
前言:选择排序(Selection sort)是一种直观的排序算法。一趟排序记录最小的数,放到第一个位置,第一个位置的数跟最小的数位置调换继续遍历列表无序列(即遍历第二遍就是第二个数)的数,放到第二个位置依次遍历到列表结束算法关键点:有序区和无序区,以及无序区最小值的位置。没有排序过的就是无序区效果:定义一个列表:[3, 9, 1, 7] 第一次选择排序后,3和1交换:[1,9,3,7],1是有序
1、选择排序不是稳定排序,空间复杂度为最佳,只需一个额外空间 2、无论是最坏情况、最佳情况还是平均情况都需要找到最大值(或最小值), 因此比较的次数是(n-1) + (n-2) +…+3 + 2+1 = n(n-1)/2, 时间复杂度为O(n^2) 3、此排序适用于数据量小或有部分数据已经过排序的情况数据从小到大排序:def showdata(data): for i in rang
转载 2023-06-07 11:54:23
148阅读
1.排序思想先拿出最小的,与排在第一个交换位置(有可能是它自己),之后在剩下的里面再选择最小的,与排在第二个交换位置,以此类推。2.代码实现public class SelectionSort_GenericClass {     private SelectionSort_GenericClass(){};     //思想: 循环不变量 arr[i....n)未排序, arr[0..i)已经
转载 2021-03-14 17:24:50
198阅读
2评论
选择排序选择排序是指在一个无序的数组中,按照从小到大或者从大到小的顺序排列。这种排序算法 速度并不是太快,也不是很慢,用大O表示:O(n^2)举个栗子假设有 [5,9,6,4,3,4,1,0,45,85]这些数组,那么用选择排序从小到大的顺序排列,首先先把最小的直,挑出来,放到另外一个新的数组中,这个新的数组就是排序好后返回的数组。依次排序就完成了排序好的数组。代码...
原创 2021-07-14 16:55:29
121阅读
3.选择: 现在我们终于可以看到一点希望:选择,这种方法提高了一点性能(某些情况下) 这种方法类似我们人为的排序习惯:从数据中选择最小的同第一个值交换,在从省下的部分中 选择最小的与第二个交换,这样往复下去。 #include <iostream.h> void SelectSort(int* pData,int Count) {   int iTemp; &n
转载 精选 2008-04-16 15:39:06
818阅读
class SelectSort{     public void sort(int arr[]){         int temp=0;        &n
原创 2015-06-06 11:13:51
436阅读
参考:《C语言进阶重点、难点与疑点解析》1.推导过程
原创 2023-03-06 19:20:47
166阅读
我要用这个博客记录我的菜鸟成长之路!!以前只会一种快速排序排序算法,觉得自己好low,今天学习了一种插入排序,嗯,只要认真看几分钟,排序还是不难的!小二,上代码void InsertSort(int a[],int n) {  int i,j,tmp;  for(i=1;i<n;i++)  {  &n
原创 2015-04-07 08:43:54
447阅读
//选择排序public class XuanZe {  public void xz(int[] in){ for(int i=0;i<in.length-1;i++){  for(int j=1+i;j<in.length;j++){   if(in[i]>in[j]){    int temp=in[i];                 in[i]=in[j];    ...
原创 2023-07-08 21:05:31
22阅读
【代码】选择排序
选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移
冒泡排序选择排序
转载 2013-10-14 09:45:00
249阅读
2评论
选择排序        选择排序是我认为除了冒泡排序法外,最容易理解的一种排序方法。它主要是通过比较来找出最小或者最大的数,以此进行交换。public void selectSort(int[] a){// 选择排序 for(int i=0;i<a.length-1;i++){ int k=i; for(int j=i+1;j<a.
<script> var arr = [1, 4, 2, 9, 3, 0]; function xuanze(array) { if (Array.isArray(array)) { if (array.length == 1 || array.length == 0) { return array; } for (var i = 0; i < array.lengt
原创 2022-11-18 00:06:36
68阅读
#include<stdio.h>int main(){ int n,a[10],i,j,t; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",
原创 2022-08-03 17:06:54
102阅读
  • 1
  • 2
  • 3
  • 4
  • 5