排序算法 之 (简单选择排序)

10.5、简单选择排序

这个算法的思想很简单,每次选择从没有排序的元素中选择最小(大)元素放到到前(后)面

简单选择排序是不稳定的

简单选择排序代码实现

#include <stdio.h>
#include <stdlib.h>

#define boolean int
#define false 0;
#define true 1;

//简单选择排序:nums:待排序数组,length:数组长度
void SelectSort(int nums[],int length){
    for(int i = 0;i < length-1;i++){
        int min = i;
        for(int j = i+1;j < length;j++){
            if(nums[j] < nums[min]) min = j;
        }
        if(min != i){
            int temp = nums[i];
            nums[i] = nums[min];
            nums[min] = temp;
        }
    }
}

int main(){
    int nums[] = {49,38,65,97,76,13,27,47,89,13,48,76,88,88,99};
    int length = 15;
    printf("简单选择排序前:");
    for(int i = 0; i < length ;i++){
        printf("%d ",nums[i]);
    }
    SelectSort(nums,length);
    printf("\n");
    printf("简单选择排序后:");
    for(int i = 0; i < length ;i++){
        printf("%d ",nums[i]);
    }

    return 0;
}
//结果:
简单选择排序前:49 38 65 97 76 13 27 47 89 13 48 76 88 88 99 
简单选择排序后:13 13 27 38 47 48 49 65 76 76 88 88 89 97 99 
posted @ 2023-03-15 18:13  水三丫  阅读(47)  评论(0编辑  收藏  举报