C语言选择排序

1.选择排序(Selection sort)

选择排序是简单直观的排序算法。

基本思想:从首元素开始,首元素与它后面的所有元素进行比较,找到数列中最小的元素,与首元素值交换。然后下一个元素与它后面的元素比较,得到第二小的元素,与之交换。

cs 复制代码
void swap(int* x, int* y)
{
	int temp;
	if (*x > *y)
	{
		temp = *x; 
		*x = *y;
		*y = temp;
	}
}
void xuanzepx(int* a,int size )//选择排序
{
	int i = 0, j = 0;
	int temp;
	for (i = 0; i < size-1; i++)//拿一个数与它后面的数作比较
	{
		for (j = i+1; j < size; j++)
		{
			if (a[i] > a[j])
			{
				swap(&a[i],&a[j]);
			}
		}
	}
}
 void main()
{
	 int str[] = {10,9,8,7,5,6,4,1,2,3};
	 int zf = sizeof(str) / sizeof(str[0]);//数组元素个数
	 xuanzepx(str,zf);
	 for (int i = 0; i < zf; i++)
	 {
		 printf("%3d", str[i]);
	 }
}

下标为0的元素与他后面的所有元素比较,找到数组中最小的元素值为止,下标为0的元素值与最小元素值进行交换。位置并没有交换。然后下标为1的元素与它后面的所有元素比较,找到最小的元素值为止(此时为第二小的元素值),下标为1的元素值与最小的元素值进行交换。位置并没有交换。接着下标为2为3为...


上面swap是自己写的交换值的函数,不是系统自带的。用的是指针。

指针是变量的首地址。当你把地址给指针变量后,指针就能访问并改变里面的内容。

相关推荐
是希燃亚3 天前
📚 十大经典排序算法 C语言笔记(一看就会版)
排序算法
祈安_3 天前
C语言内存函数
c语言·后端
norlan_jame5 天前
C-PHY与D-PHY差异
c语言·开发语言
czy87874755 天前
除了结构体之外,C语言中还有哪些其他方式可以模拟C++的面向对象编程特性
c语言
m0_531237175 天前
C语言-数组练习进阶
c语言·开发语言·算法
Z9fish5 天前
sse哈工大C语言编程练习23
c语言·数据结构·算法
代码无bug抓狂人5 天前
C语言之单词方阵——深搜(很好的深搜例题)
c语言·开发语言·算法·深度优先
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习
枫叶丹45 天前
【Qt开发】Qt界面优化(七)-> Qt样式表(QSS) 样式属性
c语言·开发语言·c++·qt
with-the-flow5 天前
从数学底层的底层原理来讲 random 的函数是怎么实现的
c语言·python·算法