简单选择排序

选择排序:简单选择、树形选择 选择排序(Selection Sort):经过一趟排序,可以从n-i+1(i=1,2...)个记录中选取关键字最小的记录作为有序序列中第i个记录。也就是说,每一趟排序,都会排好一个元素的最终位置。 其中最简单的是 简单选择排序(Simple Selection Sort) 简单选择排序的思想是 在每一趟排序中,通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录 阅读详情

学习之后,自己练习手写一下排序算法,加深印象

原理:通过n-i次关键词的比较,从n-i+1个记录中选出关键词最小的记录,并和第i(1<=i<=n)个记录交换之。与冒泡排序相比,其交换的次数减少了许多。

#define MAXSIZE 10
#include <stdio.h>
struct a{
    int array[MAXSIZE];    //数组用于存储排序数据 
    int length;           //用于存储数组长度信息, 
};

void init_array(struct a *L){   //初始化数组 
    int i;
    L->length = MAXSIZE;
    for (i=1;i<L->length;i++){     //索引为0的项留作备用 
        scanf("%d",&(L->array[i]));
    }
}

void swap(struct a *L,int i,int j){   //交换数组项 
    int temp = L->array[i];
    L->array[i] = L->array[j];
    L->array[j] = temp;
}

void print(struct a *L){    //打印数组项 
    int i;
    for (i=1;i<L->length;i++){
        printf("%d ",L->array[i]);
    }
}

void selectSort(struct a *L){   //排序算法 
    int i,j,min;
    for (i=1;i<L->length;i++){
        min = i; 
        for (j=i+1;j<L->length;j++){
            if (L->array[min]>L->array[j]){
                min = j;
            }
        }

        if (i!=min){
        swap(L,i,min);
        }
    }
} 

int main(){
    struct a List;
    init_array(&List);
    printf("排序前:");
    print(&List);
    selectSort(&List);
    printf("\n排序后:");
    print(&List);
    return 0;
}

算法时间复杂度:O(n2)
这里写图片描述

从DMD芯片到3D视觉革命:揭秘DLP工业投影光机的核心技术 本文深入解析了DMD芯片在DLP工业投影光机中的核心技术应用,揭示了其如何通过3D结构光技术实现微米级精度。从DMD芯片的机械设计到工业级光机的特殊优化,再到光固化3D打印和系统集成,展现了DLP技术在工业自动化和智能制造中的革命性作用。 阅读详情

相关推荐

大疆机场及无人机上云(航线规划、指令飞行...)

最近基于大疆上云api进行二次开发,后面将按照开发步骤对其进行说明!

资深三维GIS开发 5576

选择排序之简单选择排序

选择排序的原理:选择排序的主要操作是选择,主要思想:每趟排序在待排序序列中选择最小的元素记录,添加到有序序列中。选择排序主要有简单选择排序(直接选择排序)和堆排序,堆排序算法可以看作是简单选择排序算法的改进;这里主要介绍简单选择排序算法。...

m0_64529905的博客 3060

《商用密码应用与安全性评估》第四章密码应用安全性评估实施要点4.1密码应用方案设计

密码应用方案设计

qq_40442137的博客 1472

简单选择排序与直接选择排序

是对元素直接排序 而先获取到元素的最大值或最小值下标再进行交换每次遇到n-1>n 的时候就要发生交换;则只是记录下较大那个元素的位置,这样一轮过后这个记录变身本轮所要选取的最大值,而每轮需要确定的位置已由外层循环确定,只需将最大元素位置记录所对应的元素与要确定的位置交换机可。话不多说直接上代码演示。

orehrepuS的博客 3886

RcisTarget实战:从差异基因到转录因子调控网络的完整分析流程(附代码)

本文详细介绍了RcisTarget工具在转录因子调控网络分析中的完整流程,从差异基因到motif富集分析,再到结果可视化与生物学解读。通过实战代码演示,帮助研究者掌握这一强大的R包应用,揭示基因表达背后的调控机制,特别适用于基因组学和生物信息学研究。

weixin_29214199的博客 228

如何用Bertalign快速搞定多语言句对齐?5分钟上手教程(附避坑指南)

本文详细介绍了如何利用Bertalign工具快速实现多语言句对齐,从安装配置到实战应用的全流程指南。通过LaBSE句向量技术,Bertalign显著提升了对齐准确率,支持25种语言的任意组合,特别适合处理复杂句式。文章还提供了常见问题的解决方案和性能优化技巧,帮助用户高效完成多语言文本对齐任务。

weixin_42538752的博客 350

简单选择排序详解

1、什么是选择排序? 选择排序是第一次从待排序的元素中选取最大值(或者最小值),将其放在序列的最前面,再从剩下的待排序元素中选取最大值(或者最小值)放入序列的最后,重复该操作直到剩下的待排序的元素的个数是0,选择排序是一种简单直观的排序算法。 2、简单选择排序和堆排序的关联 选择排序是从待排序的元素中选择最大值(或者最小值),然后将其放入序列中排序。选择排序分为简单选择排序和堆排序,简单选择排序和堆排序的区别在:从待排序的元素中选择最大值(或者最小值)的方式不同,简单排...

weixin_44713306的博客 7023

mipi协议中的calibration和scramble模式

在MIPI(Mobile Industry Processor Interface)协议中,calibration(校准)和scramble(加扰)模式是两个重要的特性,它们分别用于优化数据传输的准确性和减少信号干扰。

flomingo1的专栏 2401

简单选择排序_选择排序之简单选择排序(Java)

选择排序之简单选择排序(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[...

weixin_39989159的博客 206

五段式S型算法笔记

又因为有 v-v0= 0.5jt通式: 所以有 vm-v0= 0.5jtm 所以有4vm-4v0= 2jtm。算法1: v=2vm-v0-0.5*jt+2jt*tm-2jtm*tm。加加速度j 自己设置 已知,vmax自己设置已知;所以有4vm-4v0= 2jtm带入算法1。

qq_36658033的博客 681

无人机视角下基于YOLOv5/v8/v10的车辆检测系统:从算法原理到UI界面实战

随着无人机技术的普及和智慧城市的发展,无人机视角下的车辆检测在交通监控、战场侦察、灾害救援等领域展现出巨大的应用价值。然而,无人机航拍图像存在目标尺度小、视角多变、背景复杂等挑战。本文深入探讨了如何利用YOLOv5、YOLOv8、YOLOv10三个代表性目标检测算法,构建一套完整的无人机车辆检测系统。文章不仅详细解析了各版本YOLO的核心技术演进,还提供了从数据集准备、模型训练、性能评估到基于PyQt5/PySide6的图形界面开发的完整代码实现。通过本文,读者将能够掌握构建无人机实时车辆检测系统的全流程技

YOLO 172

选择排序:简单选择排序

1.选择排序思想 (1.1)选择排序的基本思想是:每一趟(例如第i趟)在后面n-i+1(i=1,2, ... , n)个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到第n-1趟做完,待排序元素只剩下1个,就不用再选了。选择排序中的堆排序算法是重点内容。 2.简单选择排序的思想 (2.1)从上面选择排序的思想中可以很直观第得出简单选择排序算法的思想:假设排序表为L[1 ... n],第i趟排序即从L[i ... n]中选择关键字最小的元素与L[i]交换,每一趟排序可以确定一个...

weixin_39363245的博客 960

SAP-ABAP:SAP创建CDS视图(SQL语句创建)实例详解

通过Eclipse和ADT创建CDS视图是SAP开发中的一项重要技能。CDS视图不仅简化了数据建模,还提供了高性能和灵活性。掌握CDS视图的开发和使用,可以帮助你更好地支持SAP S/4HANA和Fiori应用的开发。

baidu_35680696的博客 1824

数据结构-选择排序(简单选择排序,堆排序)

目录 1,简单选择排序 1.1,简单选择排序思想 1.2,选择排序的时间复杂度分析 1.3,简单选择排序代码实现 2,堆排序 2.1,什么是堆排序 2.2,堆排序的思想 2.3,堆排序时间复杂度分析 2.4,代码实现 1,简单选择排序 1.1,简单选择排序思想 选择排序(Selection sort)是一种简单直观的排序算法。 简单选择排序算法的比较次数和初始的序列排列顺序无关。 它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,.

理科男同学 2420

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

选择类排序法 — 简单选择排序

9.4 选择类排序法 选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。我们主要介绍简单选择排序、树型选择排序和堆排序。    简单选择排序 简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换。共需进行i-1趟比较,直到所有记录排序完成为止

Rprop 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

选择排序——简单选择排序

思路 思路非常简单。就是第一轮循环选出最大的元素,第二轮循环选出第二大的元素。。。。 代码 package dataStructureAndAlgorithms; public class SelectSort_heapSort { public static void main(String args[]) { int[] array = { 4, 2, 8, 9, 5, 7, 6, ...

copbint 638

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

选择排序(简单选择排序--改进的简单选择排序--堆排序)

选择排序:每一趟从待排序序列中选一个按序所需要的记录,放在已排好序的子序列之前或之后,保持有序,这样,有序子序列每次增加一个记录,直到全部记录排完为止。1、简单选择排序基本思想:每一趟从待排记录序列中选具有最小关键字值的记录,顺序放在已排好序的子序列后,直到全部记录排完。步骤:(1)在第i(i=1,2,3,......,n-1)次挑选步骤中,在记录r[i],r[i+1],r[n]中挑出最小值r(2...

Unique-You的博客 828

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

文章目录算法简介Java 实现时间复杂度空间复杂度算法稳定性 算法简介 简单选择排序(Select Sort)或者叫直接选择排序,可以说是排序算法中最简单的一个,同时它的思路也很简单明了,就是通过多轮选择,每轮选择中找到那个最小的数放在该轮序列的最前面,经过 array.length -1 轮之后就可以找到所有轮次中最小的那个然后从小到大的顺序就排好了。 简单选择排序一般来讲不稳定,时间复杂度 O...

abcnull 的博客 1275

简单排序算法:简单选择排序(选择排序)

简单选择排序法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1 import java.util.Arrays; public class Solution { public static void main(String[] args) { Solution s = new Solution(); int[] arr

DirBee的博客 1368

排序之简单选择排序

基本思想:每次都从剩下的记录中选出关键字最大或者最小的来排序。 简单选择排序是不稳定排序,平均时间复杂度:,可以这样理解,就是最差的情况我们要对比多少次才能得到最终的排序,一共是: 然后需要平移的次数最差是n次,所以,时间复杂度为: 图示: C++程序: intsimpleSelect(int*pArray,intlen) { if(NULL==pArray...

上善若水,为而不争 448

排序算法-简单选择排序

简单选择排序法就是通过n-i次关键字比较,找到最小的关键字下标,最后在替换n-i下标和最小下标的值。 简单排序的思想和冒泡排序的思想的区别是冒泡排序是相邻关键字两两比较,如果小,则直接替换,可能在一轮循环会进行多次值交换。而简单选择排序法是一轮循环找到最小关键字下标,最后进行最多一次替换。 简单选择排序算法 ...

白杨 3692
上一篇: 冒泡排序
下一篇: 直接插入排序
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值