选择排序--C语言实现

1. 描述

分为n - 1轮, 每轮决定第k小(大)的数的位置;选择出来后与k位置进行交换。

2. 代码片段

#include 
void selection_sort(int *arr, int sz)
{
    for (int i = 0; i < sz; ++i ) {
        int mpos = i;
        for ( int j = i + 1; j < sz; ++j ) {
            if (arr[j] < arr[mpos] ) {
                mpos = j;
            }
        }

        int tmp = arr[i];
        arr[i]  = arr[mpos];
        arr[mpos] = tmp;
    }

}
int main(int argc, char *argv[])
{

   int arr[] = { 3,4,1,5,2};
   size_t sz = sizeof(arr) / sizeof(arr[0]);
   selection_sort(arr, sz);

   for (int i = 0; i < sz; ++i )
          printf( "%d ", arr[i] );

    return 0;
}

你可能感兴趣的:(排序,c语言,算法,数据结构)