选择排序(指针法)

描述

用选择法对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;
}
相关推荐
byte轻骑兵2 小时前
【C++特殊工具与技术】优化内存分配(五):显式析构函数的调用
开发语言·c++
谷雨不太卷2 小时前
AVL树的实现
数据结构·c++·算法
别来无恙1495 小时前
岛屿周长问题的三种解法:直接计数法、数学计算法与深度优先搜索
java·c++·算法·深度优先·dfs
周振超的6 小时前
c++编译第三方项目报错# pragma warning( disable: 4273)
开发语言·c++
愚润求学9 小时前
【递归、搜索与回溯】FloodFill算法(一)
c++·算法·leetcode
uyeonashi10 小时前
【QT系统相关】QT文件
开发语言·c++·qt·学习
sunny-ll11 小时前
【C++】详解vector二维数组的全部操作(超细图例解析!!!)
c语言·开发语言·c++·算法·面试
嵌入式@秋刀鱼12 小时前
《第四章-筋骨淬炼》 C++修炼生涯笔记(基础篇)数组与函数
开发语言·数据结构·c++·笔记·算法·链表·visual studio code
嵌入式@秋刀鱼12 小时前
《第五章-心法进阶》 C++修炼生涯笔记(基础篇)指针与结构体⭐⭐⭐⭐⭐
c语言·开发语言·数据结构·c++·笔记·算法·visual studio code
whoarethenext12 小时前
使用 C/C++的OpenCV 裁剪 MP4 视频
c语言·c++·opencv