直接选择排序

                                                        选择排序

时间复杂度:O(n^2),不稳定。

思想:  初始情况:有序空间为空,无序空间为整个待排空间。

过程:  每次从无序空间取出一个最小值和无序空间第一个元素进行交换,然后缩小无序区间,直到无序区间只剩一个元素

代码:

void select_sort(int *array, int length)
{
    int i = 0; 
    int j = 0; 
    int min_index = -1;
    int temp = 0;

    for(i = 0; i < length - 1; ++i){ 
        min_index = i;
        for(j = i + 1; j < length && array[j] < array[min_index]; ++j){
            //找出序列中最小值下标
            min_index = j;
        }

        if(min_index != i){    //序列第一个值就是最小值,不交换
            temp = array[i];
            array[i] = array[min_index];
            array[min_index] = temp;
        }
    }

    // min_index = i
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值