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

选择排序

时间:2024-05-07 21:35:08浏览次数:18  
标签:min int 元素 选择 最小值 序列 排序 buf

//选择排序  从序列中找到一个最小值元素,把最小值元素放在整个序列的首部,重复n轮,直到整个序列有序
void SelectSort(int buf[10],int size)
{
	int min  = 0; //记录最小值元素的下标
	int temp = 0; //备份最小值元素的值

	//需要比较n轮,每轮找到序列中的最小值元素
	for (int n = 0; n < size-1; ++n)  
	{
		 min  = n; //假设每轮序列中的第一个元素是最小值元素

		//找到序列中的最小值元素的下标
		for (int i = n+1; i < size; ++i)
		{
			//每轮需要通过比较的方式才可以确定最小值
			if ( buf[min] > buf[i] )                  
			{
				min = i;//更新当前的最小值元素的下标 
			}
		}

		//找到最小值元素,需要把最小值元素和序列的首部元素进行交换
		temp   = buf[min];
		buf[min] = buf[n];
		buf[n] = temp;
	}
}

标签:min,int,元素,选择,最小值,序列,排序,buf
From: https://www.cnblogs.com/CamelliaWY/p/18178433

相关文章

  • 二分法、冒泡排序
    【一】二分法二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法思路:首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤的操作。如......
  • antd下拉选择框搜索配置:filterOption
     <SelectallowClearmode="multiple"showArrow={true}showSearch={true}filterOption={(inputValue,option)=>option?.props?.label.includes(inputVal......
  • 网站开发框架的选择
    我们在开发项目之前,都要先选择开发框架,为什么先要选择框架呢,其实不选开发框架也可以,但是要从零开始开发,而且每一个功能每一个特效都是由自己开发,这样会消耗很多的时间,如果你是已学习的目的去开发倒还可以,但是如果是在工作中开发,那么就要选择框架了,因为框架里面有很多现成的功能,直......
  • 常见的排序算法——归并排序(二)
    本文记述了自底向上归并排序的基本思想和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。◆思想使用自底向上的递推思想进行排序。从大小为1的子范围开始两两归并,得到小规模排序的结果。逐步将子范围的大小翻倍并继续两两归并,直到整个数组范围都已被归并,即得......
  • 01选择排序
     1.选择排序含义每次选择最小的,放到左侧。持续进行。 2.示例代码:defselectionSort(arr):foriinrange(len(arr)-1):#记录最小数的索引minIndex=iforjinrange(i+1,len(arr)):ifarr[j]<arr[minIndex]:......
  • dayjs 根据选择的日期获取当前周的周一到周天
    //设置表头日期constsetHeadDate=(val:any)=>{constnowDay=dayjs(val).day()//这周的第一天letstr:any=nullif(nowDay){//非周天,即当周str=dayjs(val).startOf('week').add(1,'day')}else{//周天,先减去一天,当作是上周的,然后......
  • 插入排序
    插入排序简单来说假设数组第一个元素为一个有序序列然后将后面的无序序列依次与第一个元素比较更具大小决定待插入元素插入的位置。、、、//插入排序是吧无序序列中的元素依次插入到有序序列中,一般是从有序序列的尾部开始比较voidInsertSort(intbuf[10],intbufsize){......
  • 冒泡排序法(从左到右升序 )
    /**@filename: main.c@brief冒泡排序@[email protected]@date2024/05/[email protected]:版本@property:属性介绍@note补充注意说明CopyRight(c)[email protected]*///冒泡排序,指的是元素两两之间进行比较交......
  • 冒泡排序
    冒泡排序冒泡排序也被称为起泡排序,该排序算法的原理就是经过一系列的交换实现的,也就是用第一个元素和第二个元素进行比较,如果第一个元素的值大于第二个元素则两者位置互换,否则不交换。然后第二个元素和第三个元素比较.......最后序列中最大的元素被交换到了序列的尾部,这样就完成......
  • 冒泡排序
    数据结构冒泡排序//元素两两之间进行比较交换,需要比较n轮,每轮需比较m次,从左向右升序voidbubbleSort(intbuf[],intbufsize){inttemp=0;//临时存放交换值for(intn=1;n<bufsize;++n)//每轮需要比较n次{for(intm=0;m<bufsize-n;++m)//比较m轮......