算法:选择排序

本文详细介绍了选择排序的基本思想和实现步骤,通过示例代码展示了如何使用C++实现选择排序算法,并给出了一个具体的排序示例。

选择排序思想:第一个数与后面的数比较,记录下 最小数的下标,然后交换 位置 后放到第一个位置,从第二个数开始,后面的数与第二个数比较 ,记录第二小的数下标,交换,放到第二个位置。。。。

选择排序是不稳定的排序方法





#include <iostream>
#include <cassert>


using namespace std;


void select_sort(int *a , int n);


void select_sort(int *a , int n)
{


        assert(a);
        int i , j, min;

        for(i = 0 ; i < n - 1; i++)
        {
                min = i;
                for( j = i + 1;j < n; j++)
                {
                        if(a[min] > a[j] )
                                min = j;

                }

                if(i != min)
                {
                        int temp = a[i];
                          a[i]     =a[min];
                        a[min]   = temp;
                }


        }



}

int main()
{
        int  arr[5] = {4,6,2,8,1};
        select_sort(arr,5);

        int i = 0;

        for(i = 0;i < 5; i ++)
                cout << "  " << arr[i] << "  ";

        cout <<endl;


}



                                                              










评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值