#include<iostream>
/**
直接选择排序 -- 将数组分为有序区和无序区,每一趟在无序区取出一个最小的数放入有序区,使有序
区增加一个元素,经过n-1趟排序之后,整个数组递增有序。
**/
int main()
{
int arr[5] = {5,4,3,2,1};
void SelectSort( int array[], int n );
SelectSort(arr,5);
for( int i = 0; i < 5; i++ )
std::cout<<arr[i]<<std::endl;
return 0;
}
void SelectSort( int array[], int n ) {
int i,j,k;
for( i = 0; i < n-1; i++ ) { //做n-1次排序
k = i;
for( j = i+1; j < n; j++) {
if( array[j] < array[k] ) //在无顺序区选择最小的数
k = j;
}
if( k != j ) { //交换array[i]和array[k]
int tmp = array[i];
array[i] = array[k];
array[k] = tmp;
}
}
}
直接选择排序
最新推荐文章于 2022-08-04 07:00:00 发布