#include <iostream>
#include <Windows.h>
// 有一个整形数组,例如:int a[3] = {7,2,5}, 要求使用指针实现数组成员有小到大的顺序排列,即结果为: {2,5,7};
using namespace std;
void sort(int *a, int len) {
if (a == NULL) {
cout << "a is NULL" << endl;
system("pause");
exit(1);
}
if (len <= 0) {
cout << "非法数据" << endl;
system("pause");
exit(-1);
}
for (int i=0; i<len-1; i++) {
int k = i;
for (int j=i+1; j<len; j++) {
if (*(a+k) > *(a+j)) { // 比较两数大小
k = j; // 记录最小数的索引位置
}
}
// 两数交换
if (i != k) {
int ret = *(a+i);
*(a+i) = *(a+k);
*(a+k) = ret;
}
}
for (int i=0; i<len; i++) {
cout << *(a+i) << " ";
}
}
int main(void) {
int a[10] = {1, 3, 5, 9, 0, -5, 6, 7, 2, 10};
int len = sizeof(a) / sizeof(int); // 计算数组的长度
sort(a, len);
system("pause");
return 0;
}
运行结果: