Int型数组,有i个元素,则循环i-1次,每循环一次找到一个未排序部分的最小值与每次循环起始元素(未排序部分的第一项)交换。(通过每次循环的起始元素不断与后面未排序元素进行比较,遇到小的元素就取而代之继续与后面比较,从而得到最小的元素,注意temp的使用技巧)
排序顺序:从数组第一个元素开始到倒数第二个元素
using namespace std;
int main()
{
int num[5];
for (int i = 0; i < 5; i++)
cin >> num[i];
for (int i = 0; i < 5; i++)
cout << num[i] << " ";
cout << endl;
for (int i = 0; i < 4; i++)
{
bool b = false;
int temp = num[i], n=;
for (int j = i + 1; j < 5; j++)
if (num[j] < temp)
{
temp = num[j];
n = j;
b = true;
}
if (b)
{
num[n] = num[i];
num[i] = temp;
}
}
for (int i = 0; i < 5; i++)
cout << num[i] << " ";
cout << endl;
return 0;
}
另:
#include <iostream>
using namespace std;
template <class T>
void Sort(T arr[],int n)
{
for (int i = 0; i < n - 1; i++)
{
int mark;
bool judge = false;
T temp = arr[i];
for (int s = i + 1; s < n; s++)
if (temp > arr[s])
{
judge = true;
temp = arr[s];
mark = s;
}
if (judge)
{
arr[mark] = arr[i];
arr[i] = temp;
}
}
cout << "排序后的数组为:";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
}
int main()
{
int n;
cout << "输入整型数组元素个数:";
cin >> n;
int *arr1 = new int[n];
cout << "输入数组元素:";
for (int i = 0; i < n; i++)
cin >> arr1[i];
Sort(arr1,n);
delete[] arr1;
cout << "输入浮点型数组元素个数:";
cin >> n;
double *arr2 = new double[n];
cout << "输入数组元素:";
for (int i = 0; i < n; i++)
cin >> arr2[i];
Sort(arr2,n);
delete[] arr2;
cout << "输入字符型数组元素个数:";
cin >> n;
char *arr3 = new char[n];
cout << "输入数组元素:";
for (int i = 0; i < n; i++)
cin >> arr3[i];
Sort(arr3, n);
delete[] arr3;
return 0;
}