在这里我输入了n=10,实际上可以任意输入,只需要对主函数中数据调整即可
#include<iostream>
#include<iomanip>
using namespace std;
void px(int a[],int n);//自行输入n
int main()
{
int a[10];
int i = 0;
int n = 10;
cout << "请输入10个整数" << endl;
for (i = 0; i < 10; i++)
{
cin >> a[i];
}
px(a,n);
cout << "升序排序为:" << endl;
i = 0;
for (i = 0; i < 10; i++)
{
cout << a[i]<<' ';
}
return 0;
}
void px(int a[],int n)
{
int* p = a;
int* q = p + 1;
//***************************************
//这里是选择排序
for (p = a; p<a+n-1; p++)
{
for (q = p + 1; q<a+n; q++)
{
if (*p > *q)
{
int temp = *p;
*p = *q;
*q = temp;
}
}
}
}
使用函数排序必须用指针从内存层面修改数据
如果使用普通排序,会因为函数中变量是局部变量,无法实现排序