C语言实现选择排序代码


前言

选择排序法:它的基本思想是把每次都遍历数组中的最小值(最大值)放在起始位置。

听说是一种比较简单的排序算法。

至于该排序的算法复杂度。

嗯,请查其他资料吧。

本次采用C语言的方式实现。

代码实现

#include <stdio.h>

// 打印数组
void print(int *buf, int size)
{
	for (int i = 0; i < size; ++i)
	{
		printf("%d ", buf[i]);
	}

	printf("\n");
}

// 排序数组(从小到大)
void sort(int *buf, int size)
{
	for (int i = 0; i < size - 1; ++i)
	{
		int index = i;
		for (int j = i + 1; j < size; ++j)
		{
			if (buf[index] > buf[j]) 
			{
				index = j; // 找到最小值索引
			}
		}

		int tmp = buf[i];
		buf[i] = buf[index];
		buf[index] = tmp;

	}
}

// 主函数
int main(int argc, char **argv)
{
	int buf[] = { 33, 2, 3, 3, 2, 1, 1, 2, 3, 3, 1, 1, 1, 1, 1, 1 }; // 源数组

	int size = sizeof(buf) / sizeof(int); // 数组大小

	print(buf, size); // 打印插入排序前数组

	sort(buf, size);  // 执行插入排序

	print(buf, size); // 打印插入排序后数组

	return 0;
}

调试结果

结语

嗯。

好像是简单。

---End


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM