考虑排序存储在数组A中的n个数:首先找出A中的最小元素并将其与A[1]中的元素进行交换。接着,找出A中的次最小元素并将其与A[2]中的元素进行交换。对A中前n-1个元素按该方式继续。该算法称为选择排序算法,写出伪代码。
伪代码
for i=1 to A.length-1
min = A[i];
k = i; //k为最小值的下标
j = i + 1;
while j<A.length
if A[j] < min
min = A[j];
k = j;
j++;;
A[k] = A[i];
A[i] = min;
c++代码
#include <iostream>
using namespace std;
void selectionSort(int a[],int len);
int main()
{
int A[] = { 2, 1, 5, 7, 3, 4, 8, 6 };
const int length = 8;
cout << "Before sorted:" << endl;
for(int i = 0;i < length;++i)
cout << A[i] << " ";
cout << endl;
cout << "After sorted:" << endl;
selectionSort(A,length);
for(int i = 0;i < length;++i)
cout << A[i] << " ";
cout << endl;
return 0;
}
void selectionSort(int Array[], int len) {
int i,j,k,min;
for (i = 0; i < len-1; i ++) {
min = Array[i];
k = i;//k为最小值的下标
for (j=i+1; j < len; j ++) {
if (min > Array[j]) {
min = Array[j];
k = j;
}
}
Array[k] = Array[i];
Array[i] = min;
}
}
结果