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是自己写的交换值的函数,不是系统自带的。用的是指针。

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

相关推荐
aaasssdddd961 小时前
python和c
c语言·开发语言·python
凯子坚持 c2 小时前
C语言复习概要(三)
c语言·开发语言
无限大.2 小时前
c语言200例 067
java·c语言·开发语言
无限大.2 小时前
c语言实例
c语言·数据结构·算法
Death2002 小时前
Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件
c语言·开发语言·c++·qt·c#
@haihi3 小时前
冒泡排序,插入排序,快速排序,选择排序
数据结构·算法·排序算法
Death2003 小时前
Qt 3D、QtQuick、QtQuick 3D 和 QML 的关系
c语言·c++·qt·3d·c#
洛临_3 小时前
【C语言】基础篇
c语言·算法
长天一色4 小时前
C语言日志类库 zlog 使用指南(第五章 配置文件)
c语言·开发语言
whltaoin4 小时前
【408计算机考研课程】-C语言认知
c语言·考研