选择排序算法实现
更新:HHH   时间:2023-1-7


//选择排序法
//time :2017.3.8
//author :justing_zhang
/****************************************************************************************/
#include <stdio.h>
void println(int array[], int len)
{
    int i = 0;
    
    for(i=0; i<len; i++)
    {
        printf("%d ", array[i]);
    }
    
    printf("\n");
}
//交换两个数组变量
void swap(int array[], int i, int j)
{
    int temp = array[i];    //需要中介变量
    
    array[i] = array[j];
    
    array[j] = temp;
}

/************选择排序 算法具体实现*********************/
void SelectionSort(int array[], int len) 
{
    int i = 0;
    int j = 0;
    int k = -1;
    
    for(i=0; i<len; i++)  
    {
        k = i;    //定义一个游标
        
        for(j=i; j<len; j++)  //通过
       
            if( array[j] < array[k] ) //一次循环可以找到最小的元素,
            {
                k = j;
            }
        }
         
        swap(array, i, k); //找到后与第一元素调换,第二次与[2]调换
    }
}
int main()
{
    int array[] = {21, 25, 49, 25, 16, 8};
    int len = sizeof(array) / sizeof(*array);  //元素长度等与所有元素占用的空间除以每个元素的长度.
    println(array, len);
    SelectionSort(array, len);//array指向数组的首位之
    
    println(array, len);
    
    return 0;
}

返回编程语言教程...