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

来源:互联网 发布:神仙道懒娃 源码 编辑:程序博客网 时间:2024/06/10 13:20

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


选择排序是最基础的排序,基础的思想就是检测数组中的每一个成员,把其记做检测位,然后从检测位后面寻找最小数,用一个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;}


原创粉丝点击