简单选择排序——C语言实现

这篇具有很好参考价值的文章主要介绍了简单选择排序——C语言实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

选择排序思想:若按照递增顺序对顺序表进行排列,在n个元素的顺序表中,从第i(i=1)个元素开始遍历到第n-1个元素,在遍历过程中都将第i个元素依次与第i+1到第n个元素进行比较,确定最小的元素,如果最小的元素不是第i个元素则将其与最小的元素进行交换。

代码如下:

#include<stdio.h>
void select_sort(int a[],int n){
	int i,j,min,temp=0;	 //变量i,j用来遍历数组,min用来标记最小值的位置,temp用于交换两个变量的值 
	for(i=0;i<n-1;i++){	 //从第1个元素开始遍历到第n-1个元素 
		min=i;	 //每一轮遍历都先将i的值赋给min,默认a[i]是最小元素
		for(j=i+1;j<n;j++){	 //从第i+1开始遍历,并逐一与a[i]进行比较 
			if(a[min]>a[j])		//若a[min]>a[j]则将j的值赋给min,用来记录当前最小元素的位置 
				min=j;
		}
		if(min!=i){			//当a[i]与待比较的元素比较完后,若min的位置与i不一致
			temp=a[i];		//那么就将最小的元素a[min]与a[i]进行交换
			a[i]=a[min];
			a[min]=temp;
		}
	}
}
int main(){
	int a[]={6,2,1,3,4,5};		//初始化数组 
	int len=sizeof(a)/sizeof(a[0]);		//用变量len接收数组长度计算出来 
	printf("排序前的数组:\n");
	for(int i=0;i<len;i++)		//遍历排序前的数组 
		printf("%d ",a[i]);
	printf("\n"); 
	select_sort(a,len);			//使用选择排序算法 
	printf("排序后的数组:\n");
	for(int i=0;i<len;i++)		//遍历排序后的数组 
		printf("%d ",a[i]);
	return 0;
}

运行结果:

简单选择排序——C语言实现

 文章来源地址https://www.toymoban.com/news/detail-505217.html

到了这里,关于简单选择排序——C语言实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构(C语言实现)——常见排序算法的基本思想及实现(快速排序的三种方法和优化及非递归实现快速排序)

    生活中几乎处处都会用到排序,比如:网购时的店铺顺序,学生成绩的排名等,今天我们就来学习数据结构中常见的几种排序算法。 排序 :所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列

    2023年04月24日
    浏览(40)
  • 单链表实现简单选择排序

    算法思想:顺序遍历单链表,每当访问一个结点时,查看此结点往后的结点是否有更小的值,如果有更小值的结点,则交换两个结点元素的值(无需改变指针的指向)。每遍历一个结点就执行上诉操作,直到遍历到最后一个结点。 核心代码: 完整代码: 程序运行结果:  

    2024年02月11日
    浏览(22)
  • 插入,选择,堆,快速排序算法思想与复杂度

    目录 插入排序 思想 算法步骤 代码 复杂度 选择排序 思想 算法步骤 代码 复杂度 堆排序  思想 算法步骤 代码 复杂度  快速排序  思想 算法步骤 代码 复杂度 稳定性 插入排序是一种简单直观的排序算法。它的工作原理是将数组分为 已排序 和 未排序 两部分,然后依次将未

    2024年02月15日
    浏览(27)
  • 【第41天】实现一个简单选择排序

    本文已收录于专栏 🌸《Java入门一百例》🌸    本专栏开启,目的在于帮助大家更好的掌握学习 Java ,特别是一些 Java学习者 难以在网上找到系统地算法学习资料帮助自身入门算法, 同时对于专栏内的内容有任何疑问都可在文章末尾添加我的微信给你进行一对一的讲解。

    2024年02月02日
    浏览(31)
  • 【排序算法】C语言实现选择排序与冒泡排序

    这里是阿辉算法与数据结构专栏的第一篇文章,咱们就从排序算法开始讲起,排序算法有很多大致分为两类:基于比较的排序和非比较的排序 基于比较的排序:冒泡、选择、插入、希尔、堆、归并、随机快排 非比较的排序:桶排序 以上的排序算法阿辉都会讲到,今天阿辉主

    2024年02月04日
    浏览(31)
  • 选择排序 - C语言实现

    目录 🥰前言 ✅选择排序 🥝基本思想 🥝实现逻辑 🥝动图演示  复杂度分析 😍代码实现 🚩优化改进--二元选择 排序        😍 改进代码        🥰在学数据结构的第一节课就知道了数据结构课程是要管理并且学会操作数据,当然操作数据首先想到的就是数据的排

    2024年02月09日
    浏览(24)
  • Java 语言实现选择排序算法

    【引言】 选择排序算法是一种简单但有效的排序算法。它的原理是每次从未排序的元素中选择最小(或最大)的元素,放在已排序的末尾(或开头),逐渐形成有序序列。本文将使用Java语言实现选择排序算法,并详细讲解其思想和代码实现。 【算法思想】 选择排序的核心思

    2024年02月11日
    浏览(48)
  • 【C语言】解析C语言实现排序的算法(冒泡排序、插入排序、选择排序、快速排序、归并排序)

    本博客主要围绕五种常见的排序算法展开讨论,包括选择排序、快速排序、归并排序、冒泡排序和插入排序。针对每种算法,我对其思想、特点、时间复杂度、稳定性以及优缺点进行了详细解释和比较。 冒泡排序算法是一种简单且常用的排序算法。它通过重复地交换相邻的元

    2024年02月13日
    浏览(32)
  • 数据结构——C语言实现常见排序(插入排序、希尔排序、选择排序、堆排序、冒泡排序)

    现在是北京时间2023年6月23日13点19分,度过了一个非常愉快的端午节。由于刚从学校回家,一下子伙食强度直升了个两三个档次。这也导致我的肠胃不堪重负,我也准备等会去健身房消耗一下盈余的热量。回到家陪伴爷爷走人生最后的阶段才是我这个暑假最重要的事情。自从

    2024年02月10日
    浏览(33)
  • 数据结构__<八大排序> __插入排序 |希尔排序 |选择排序 |堆排序 |快速排序 |归并排序(C语言实现)

    目录 插入排序  希尔排序 选择排序 堆排序 冒泡排序 快速排序 hoare法 挖坑法 前后指针法 快排特性总结 三数取中优化 小区间优化 快排非递归 归并排序 归并排序非递归 计数排序 总结 OJ测试 1、元素集合越接近有序,直接插入排序算法的时间效率越高 2、时间复杂度:O(N^2

    2023年04月09日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包