首页 > 编程语言 >1.选择排序(C++)

1.选择排序(C++)

时间:2024-07-03 21:58:23浏览次数:1  
标签:minIndex arr int C++ 选择 num sizeof 排序

// 算法步骤

// 1.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

// 2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

// 3.重复第二步,直到所有元素均排序完毕。

// 以下是代码实现
// 选择排序

#include<iostream>
#include<iomanip>
using namespace std;
void selectionSort(int arr[], int len)
{
    // 第一层循环为循环次数
	for (int i = 0; i < len; i++)
	{
        // 记录最小值的下标,便于后面的换位
		int minIndex = i;      
        
        // 第二层循环遍历当前数往后在数据
		for (int j = i; j < len; j++)  
		{

            // 大小判断,如数值小于最小值,则更改最小值下标
			if (arr[j] < arr[minIndex])   
			{
				minIndex = j;
			}
		}
        
        // 每次循环结束都将当前数与最小数调换位置
		swap(arr[i], arr[minIndex]);
	}
}

int main()
{
  int num[9,8,0,6,8,2];
   
  // n为**数组长度**。sizeof(num)求出 **数组所占字节数** 除以 **每个数据的字节数** 就能知道数组长度
  int n = sizeof(num) / sizeof(num[0]);  
  
  selectionSort(num, n);
  
  for(int i = 0; i < n; i++)
  {
    cout<< num[i] << ' ';

标签:minIndex,arr,int,C++,选择,num,sizeof,排序
From: https://www.cnblogs.com/Saber-World/p/18282622

相关文章

  • 快速排序
    #也是用到过,找出数组中最大值deffind_bigest(arr):if(len(arr)==1):returnarr[0]if(arr[0]>arr[-1]):returnfind_bigest(arr[:-1])else:returnfind_bigest(arr[1:])_=[1,45,467,123,8,2,63,]print(find_bigest(_))imp......
  • 【算法】十大排序算法
    冒泡排序算法思想:基于比较的思想,从第一个元素开始,依次比较相邻两个元素大小,较大者放在后面,经过一轮后,最大的元素位于最后(最大元素不断冒泡到最后的位置),重复n轮。选择排序算法思想:基于比较的思想,维护一个记录最大值的变量,遍历所有元素找到最大值所在位置,将其与最后的位置交换......
  • 在delphi用移动鼠标左键配合shift的方法选择部分文字
    procedureTForm1.ButtonPen1Click(Sender:TObject);beginSetCursorPos(694,352);//设置开始的位置。Sleep(300);//mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);//模拟按下鼠标右键。//mouse_event(MOUSEEVENTF_RIGHTUP,0,......
  • C++ 彻底搞懂指针(3)
    1.数组指针、二维数组指针、字符串指针1.1定义一个数组指针前面说过,指针变量存放的是地址,它可以存放普通变量的地址,可以存放另一个指针变量的地址,当然也可以存放数组、结构体、函数的地址。如果一个指针指向了数组,就称它为数组指针,比如下面的代码就定义了一个指针p指向......
  • C++修改任务计划程序-电源条件
    介绍应用程序需要进行守护,又不想另外运行一个软件去实时监测应用程序是否退出了,退出就重启。在Windows上可以利用任务计划程序,达到守护进程的作用。创建任务计划在nsis脚本中可以直接使用schtasks命令来创建任务计划,以下是每分钟检测一次的脚本。nsExec::ExecToLog'schtask......
  • 新特性之C++14
    C++14是C++11的一个增量升级版本,虽然没有引入像C++11那样的大量新特性,但它通过对已有特性进行优化和扩展,提高了语言的可用性和性能。本文将详细介绍C++14引入和优化的新特性功能。概述C++14旨在修复C++11的一些缺陷,并提供了一些重要的增强功能,以简化开发者的日......
  • 是否应该在未选中行时禁用删除按钮,还是应该在点击按钮时提示选择数据?
    在B端产品的表格设计中,操作按钮的交互逻辑是一个需要细致考虑的问题。表格作为信息展示和数据管理的重要工具,其操作按钮的设计直接影响到用户的操作效率和使用体验。关于是否应该在未选中行时禁用删除按钮,还是应该在点击按钮时提示选择数据,以下是从几个不同角度的关键点分析:一、......
  • 企业做源代码加密/防泄密,需要如何选择产品?
    一:稳定性是选型最重要的标准    没有稳定不谈应用看过国内品牌繁多的加密软件后,很多人感觉加密软件没有太多技术含量。选型首先就问就问是不是BS架构呀、有没有桌面管控、能不能远程推送、能不能兼容LINUX等功能。我认为这些花哨的功能的确能让应用锦上添花,但忽视加密......
  • 第6节 选择结构的程序设计
    第6节选择结构的程序设计1.if语句和switch语句1、if语句►if语句的作用是计算给定的表达式,根据结果选择执行相应的语句。语句形式有两种:►①if形式:if(表达式)语句1;如:if(a>b)t=a,a=b,b=t;►②if-else形式:if(表达式)语......
  • 排序函数
    1.std::sort(不稳定排序,时间复杂度为O(nlogn)) std::vector<int>list;std::sort(list.begin(),list.end());//默认升序std::less<int>();std::sort(list.begin(),list.end(),std::greater<int>());//降序autocmp=[](intx,inty){returnx<y;};std::s......