选择排序

来源:互联网 发布:mybaby软件怎么用 编辑:程序博客网 时间:2024/05/16 12:15

算法:
把未排序的部分的最小值找出插入到已排序的后边,内层遍历完一次就找到一个最小的,外层控制插入到已排序的后面。

#include<stdlib.h>#include<string>#include<math.h>#include<iostream>using namespace std;template<typename T , int size>void sort ( T (&array)[size] ){    int i ,j;    T flag;    for (i = 0 ;i < size - 1; i++)    {        flag = array[i];            //暂时将第一个元素当做最小的        for (j = i + 1; j < size; j++)        {            if (flag > array[j])            {                array[i] = array[j];                array[j] = flag;                flag = array[i];    //更换最小值            }        }    }}int main(){    int array1[10] = {1,5,9,3,7,4,6,2,8,10};    double array2[10] = {1.9,1.8,1.7,1.6,1.5,1.4,1.3,1.2,1.1,1.2};    sort (array1);    for (int i = 0; i < 10; i++)    {        cout<<array1[i]<<" ";    }    cout<<endl;    sort (array2);    for (int i = 0; i < 10; i++)    {        cout<<array2[i]<<" ";    }//  cout<<array1;       不是字符串不可以这么输出!    system("pause");}总结:    1.注意定义模板数组的引用方式:template<typename T , int size>                      void sort ( T (&array)[size] )    2.有一个size大小,还有一个数组类型参数T,定义的时候当然也可以返回有参数的    类型!    3.只有字符串(字符数组)的输出才可以用cout<<array1;数值型int array [],只能循环输出!
0 0