选择排序

常规:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "iostream"
using namespace std;
int main() {
int length;
cout << "请输入数组长度:";
cin >> length;
int *arr = new int[length];
cout << "请输入数组元素:" << endl;
for (int i = 0; i < length; i++) {
cin >> arr[i];
}
//选择排序
for (int i = 0; i < length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < length; j++) {
minIndex=arr[i]>arr[j]?j:i;
}
if (minIndex!=i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
for (int i = 0; i < length; ++i) {
cout << arr[i] << " ";
}
delete []arr;
return 0;
}

变种:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "iostream"
using namespace std;
int main() {
int length;
cout << "请输入数组长度:";
cin >> length;
int *arr = new int[length];
cout << "请输入数组元素:" << endl;
for (int i = 0; i < length; i++) {
cin >> arr[i];
}
//选择排序
for (int i = 0; i < length; ++i) {
for (int j = i+1; j < length; ++j) {
if (arr[i]>arr[j])
{
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for (int i = 0; i <length ; ++i) {
cout<<arr[i]<<" ";
}
return 0;
}