首页 > 其他分享 >C语言实现选择法排序

C语言实现选择法排序

时间:2023-09-17 15:33:29浏览次数:33  
标签:10 下标 int max C语言 选择 最小值 数组 排序

1.选择法排序的思路:假设有一组无序数,扫描一遍数组,找到最小值与数组下标为0的数交换,接着扫描数组,将数组下标为1的数与最小值交换,直至整个数组为有序数组。

2.图示:

C语言实现选择法排序_i++

3.代码实现:

#include <stdio.h>
#define max 10  //假设是一个10个数的无序数组 
int main() {
	int a[max];
	for(int i=0;i<max;i++){
		scanf("%d", &a[i]);
	}
	for(int i=0;i<max;i++){
		int min=i;	
		for(int j=i+1;j<max;j++){
			if(a[j]<a[min]){ 
				int tmp=a[min];
				a[min]=a[j];
				a[j]=tmp;			
			} 
		}
	}
	for(int i=0;i<max;i++){
		printf("%d\n", a[i]);
	}
	return 0;
}

标签:10,下标,int,max,C语言,选择,最小值,数组,排序
From: https://blog.51cto.com/u_16228872/7502241

相关文章

  • 复习C语言-题目 1008: [编程入门]成绩评定
    题目描述给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。输入格式一个整数0-100以内输出格式一个字符,表示成绩等级样例输入复制90样例输出复制A1#inclu......
  • 复习C语言-题目 1009: [编程入门]数字的处理与判断
    题目描述给出一个不多于5位的整数,要求1、求出它是几位数2、分别输出每一位数字3、按逆序输出各位数字,例如原数为321,应输出123输入格式一个不大于5位的数字输出格式三行第一行位数第二行用空格分开的每个数字,注意最后一个数字后没有空格第三行按逆序输出......
  • 【java基础】冒泡排序 正序倒叙排序 【一眼就会系列】
    //本节课:1、数组冒泡排序:倒序、正序//1、冒泡正序:intnum[]={345,2,3,777,34,233,97,30};for(inti=0;i<num.length;i++){for(intt=0;t<num.length-1-i;t++){if(num[t]>num[t+1......
  • 好用的C语言JSON解析器
    本文介绍开源C语言库Melon的JSON解析器。相信很多读者都听说过甚至使用过cJSON开源库。那么本文就拿cJSON与Melon的JSON组件进行对比。下面我们就来一起看一看。编码Encode假设我们要构建如下JSON:{"name":"Awesome4K","resolutions":[{"w......
  • C语言之[数组]篇
    前言牛牛又和大家见面了,本篇牛牛要讲的内容是c语言中有关数组的内容。欢迎大家一起学习,共同进步。@TOC数组通过前面所学到的知识,我们了解到,当我们需要使用一些变量的时候,我们可以通过创建变量来使用它,但是,有的时候我们需要使用很多个同类型的变量,那样一个个创建是否显得太过繁琐?......
  • 王道数据结构:设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先
    题目:设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后;在k1值相同的情况下,再看k2,k2值小的在前,大的在后。满足这种要求的排序方法是()A.先按k1进行直接插入排序,再按k2进行简单选择排序B.先按k2进行直接插入排序,再按k1进行简......
  • C语言宏
    C语言的宏可以分为宏定义和宏函数,宏定义又可以叫做对象式宏,在编译时直接把定义的内容替换到源码处,只是一个文本替换功能,不会进行计算。宏函数又叫做类函数宏,跟函数的使用类似,但是他的本质也是文本的替换,这就有产生很多注意事项。#defineN10//宏定义#definemax(a,b)(a>b?a:......
  • C语言实例_实现malloc与free函数完成内存管理
    一、malloc和free函数介绍在C语言中,malloc和free是用于动态内存管理的函数。(1)malloc函数malloc函数用于在堆(heap)中分配指定大小的内存空间,并返回一个指向该内存块的指针。原型如下:void*malloc(size_tsize);size参数表示要分配的内存块的大小,以字节为单位。函数返回一个指向分配内......
  • C语言如何输入一个字符串?
    (C语言如何输入一个字符串?)用scanf输入字符串(有限制)整个字符串处理在scanf()和printf()函数中,%s指的就是字符串所以我们就可以使用scanf("%s",str)和printf("%s",str)从键盘处读取字符串并将字符串打印出来代码如下:intmain(){ charstr[10]={0}; scanf("%s",str......
  • 基础算法:快速排序、归并排序
    1、快速排序#include<iostream>usingnamespacestd;constintN=1e5+10;intn,q[N];voidqksort(intq[],intl,intr){if(l>=r)return;intx=q[l],i=l-1,j=r+1;while(i<j){doi++;while(q[i]<......