首页 > 其他分享 >简单选择排序

简单选择排序

时间:2023-12-27 18:33:34浏览次数:39  
标签:选出 int 元素 最小 选择 简单 排序 data

  • 定义:对n个元素进行简单选择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第1个位置;第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第2个位置,以此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择,最终得到非递减排序的有序序列
#include<stdio.h>
void selectSort(int arr[];int n){
  //对data[0]~data[n-1]中的n个整数按非递减有序的方式进行排序
  int i,j,k;
  int temp;
  for(i=0;i<n-1;i++){
    for(k=i,j=i+1;j<=n-1 ;j++ )  
          //k表示data[0]~data[n-1]中最小元素的下标
      if(data[j]<data[k])
          k=j;
        if(k!=i){    //将本趟找出的最小元素与data[i]交换
          temp=data[i];
          data[i]=data[k];
          data[k]=temp;
        }
  }
}
int main(){
  int arr[]={79,85,93,65,44,70,100,57};
  int i,m;
  m=sizeof(arr)/sizeof(int); //计算数组元素的个数,用m表示
  selectSort(m,arr[]);   //调用selectSort对数组进行非递减排序
  for(i=0;i<m;i++)    //按非递减顺序输出所有的数组元素
    printf("%d\t",arr[]);
    printf("\n");
  return 0;
}

          
  
  
  
  
  




标签:选出,int,元素,最小,选择,简单,排序,data
From: https://blog.51cto.com/u_14441557/9002943

相关文章

  • 一叶茶仓为什么选择做大数据,大数据对茶叶行业有什么改变?
    1、大数据可以帮助茶叶种植者,通过分析气候、土壤、水分和植物健康等数据,来优化种植条件,提高茶叶质量和产量。2、利用图像识别技术,可以帮助茶农更准确地识别何时采摘茶叶,从而提高采摘效率和茶叶品质。3、通过分析消费者购买行为、偏好和市场趋势,可以帮助茶叶企业更好地定位市场,制定......
  • 教你如何为自己的个人网站选择SSL证书?
    在互联网飞速发展的今天,各类互联网技术和工具日新月异,越来越多的人都可以低技术门槛来开办自己的独立博客、自媒体、个人站点等通过这些平台来发布自己想要公开的资讯,或者以此来提供相关的网络服务以及展示、销售自己的作品、商品。殊不知,网络在给我们提供便利的同时,网络信息安全隐......
  • 关于激光雷达:机械式、半固态、固态的简单总结
    根据扫描的方式,分为机械式、半固态(混合固态)和固态三种。半固态可以分为一维扫描和二维扫描;固态激光雷达有OPA(相控阵)和Flash(泛光面阵式)。机械式激光雷达:通过电机带动光机结构整体360°旋转。是最经典且最为成熟的激光方案。但是利用传统分立式设计的机械雷达体积大且降本空......
  • 算法学习笔记六一堆排序
    目录什么是堆排序算法思想代码示例什么是堆排序堆排序(HeapSort)是一种基于二叉堆数据结构的排序算法。它的主要思想是将待排序的序列构建成一个大顶堆(或小顶堆),然后反复从堆顶取出最大(或最小)元素,将剩余的元素重新调整为一个新的堆,再重复取出堆顶元素的过程,直到排序完成。算法思......
  • 堆排序
    步骤1.将数组构建成二叉树,n的左右孩子是2n+1、2n+2.2.将二叉树转化成堆(父节点大于等于两个孩子节点(大顶堆),父节点小于等于两个孩子节点(小顶堆)),时间复杂度O(n)。3.将堆顶和最后一个元素交换(此时堆顶就是最大值),事件复杂度O(logn)。4.按需要最大的n个值来执行(n-1)次步骤3。(时......
  • 关于 Task 简单梳理(C#)【并发编程系列_4】
    关于Task简单梳理(C#)【并发编程系列_4】 阅读目录〇、前言一、任务如何创建和启动?二、等待一个或多个任务2.1Wait()2.2Wait(Int32,CancellationToken) 支持手动取消2.3WaitAll()2.4WaitAny()三、延续任务Task.ContinueWith()3.1一个简单的示例3.2......
  • Java 简单工厂模式
    需求:Pizza有以下几个方法prepare()准备食材bake()烘焙cut()切割box()装盒现在有两种披萨,第一种是ApplePizza,第二种是CheesePizza。PizzaStore有点单系统Order(pizzaType)根据pizzatype去制作对应的Pizza。Pizza的抽象类publicabstractclassPizza{Strin......
  • 大数据搬迁方案简单实践 _tyt2023
    本实验以通过华为云CDM服务进行数据迁移为例,介绍如何将其他Hadoop集群的历史数据迁移至华为云MRS中,以便获取MRS云服务的诸多特性。本迁移指导将指导适用于多种不同场景下的HBase、Hive数据向MRS集群的迁移工作。由于数据迁移过程中可能存在数据覆盖、丢失、损坏等风险,因此本指导......
  • flink 的安装以及fink-cdc 基于多数据源导入的es 的简单使用
    此文档是参照flink-cdc文档(https://ververica.github.io/flink-cdc-connectors/master/content/快速上手/mysql-postgres-tutorial-zh.html)案例 的最佳实践1.下载flinkrelease最新版本1.18.0并解压, https://repo.maven.apache.org/maven2/org/apache/flink/flink-......
  • Mysql根据字段值的长度查找过滤,排序等
    Mysql根据字段值的长度查找过滤,排序等http://www.shanhubei.com/archives/5882.html1.Mysql根据字段的指定长度搜索过滤SELECT*FROMuserWHEREis_deleted=0ANDlength(name)>52.添加普通索引ALTERTABLE'table_name'ADDINDEXindex_name('column')3.在表中某一列......