最简单的排序——选择排序

最简单的排序—选择排序的实现


选择排序是最基础的排序,基础的思想就是检测数组中的每一个成员,把其记做检测位,然后从检测位后面寻找最小数,用一个mindex标记其位置,在比较mindex标记的数字与检测位的数字大小,从而判断两者是否需要交换,最后每一个检测位都有一次更换位置的机会,待所有检测位都更换完位置后,数组就已经排序完成了,以下是具体的代码实现:


 
 
#include <iostream>

using namespace std;
template<typename T>
void selectsort(T arr[],int n)//选择排序函数实现
{
    for(int i=0;i<n;i++)//数组所有位置的数都需要与后面的最小数判断是否需要交换
    {
        int j,mindex=i;//假设最小数的坐标就是i
        for(j=i+1;j<n;j++)//从I后面开始寻找最小数,然后与需要更换位置的数据比大小
        {

            if(arr[j]<arr[mindex])
            {
                mindex=j;
            }
        }//找到了i后面的最小数,并用mindex标记其数组的坐标位置
        swap(arr[i],arr[mindex]);//若后面找到的最小数确实比检测位的数字小,则进行交换
    }
}
int main()
{

     float arr[4]={4.4,3.3,2.2,1.1};
    selectsort(arr,4);
    for(int i=0;i<4;i++)
    {
        cout<<arr[i]<<' ';
    }
    cout<<endl;

    string str[4]={"a","d","c","b"};
    selectsort(str,4);
    for(int i=0;i<4;i++)
    {
        cout<<str[i]<<' ';
    }
    cout<<endl;

    return 0;
}



 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值