选择排序(指针法)

描述

用选择法对10个整数排序。

输入

输入包含10个整数,用空格分隔。

输出

输出排序后的结果,用空格分隔。

输入样例 1

复制代码
3 1 4 1 5 9 2 6 5 3

输出样例 1

复制代码
1 1 2 3 3 4 5 5 6 9

输入样例 2

复制代码
2 4 6 8 10 12 14 16 18 20

输出样例 2

复制代码
2 4 6 8 10 12 14 16 18 20

输入样例 3

复制代码
-3 5 7 1 8 2 4 0 -2 9

输出样例 3

复制代码
-3 -2 0 1 2 4 5 7 8 9

代码一(如下):不采用指针

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
	int a[10];
	int i,j,k;
	for (i = 0; i < 10; i++)
	{
		cin >> a[i];
	}
	for (i = 0; i < 10; i++)
	{
		k = i;
		for (j = i + 1; j < 10; j++)
		{
			if (a[k] > a[j])k = j;
		}
		int t = a[k];
		a[k] = a[i];
		a[i] = t;
	}
	for (i = 0; i < 10; i++)
	{
		cout << a[i]<<" ";
	}
	return 0;
}

代码二(如下):采用指针

cpp 复制代码
#include <iostream>
using namespace std;
int exchange(int *);
int main()
{
	int a[10];
	int i;
	int* p = a;
	for (i = 0; i < 10; i++)
	{
		cin >> a[i];
	}
	exchange(a);
	for (i = 0; i < 10; i++)
	{
		cout << a[i]<<" ";
	}
	return 0;
}
int exchange(int *p)
{
	int i, j, k;
	for (i = 0; i < 10; i++)
	{
		k = i;
		for (j = i + 1; j < 10; j++)
		{
			if (*(p + k) > *(p + j))k = j;
		}
		int t = *(p + k);
		*(p + k) = *(p + i);
		*(p + i) = t;
	}
	return *p;
}
相关推荐
AA陈超2 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P06-14 属性菜单 - 文本值行
c++·游戏·ue5·游戏引擎·虚幻
云知谷2 小时前
【经典书籍】C++ Primer 第15章类虚函数与多态 “友元、异常和其他高级特性” 精华讲解
c语言·开发语言·c++·软件工程·团队开发
weixin_582985183 小时前
OpenCV cv::Mat.type() 以及类型数据转换
c++·opencv·计算机视觉
oioihoii6 小时前
深入理解 C++ 现代类型推导:从 auto 到 decltype 与完美转发
java·开发语言·c++
报错小能手6 小时前
项目——基于C/S架构的预约系统平台 (1)
开发语言·c++·笔记·学习·架构
lingran__6 小时前
算法沉淀第十天(牛客2025秋季算法编程训练联赛2-基础组 和 奇怪的电梯)
c++·算法
oioihoii8 小时前
当无符号与有符号整数相遇:C++中的隐式类型转换陷阱
java·开发语言·c++
Yupureki8 小时前
从零开始的C++学习生活 13:红黑树全面解析
c语言·数据结构·c++·学习·visual studio
2401_876221348 小时前
Euler
c++·数学·算法
赵杰伦cpp10 小时前
C++的继承机制精讲
java·开发语言·c++·后端