⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selectsort.cpp

📁 是一本教程的实例代码,可以下载后直接运行,即可以得到答案.
💻 CPP
字号:
#include <iostream.h>                  //简单选择排序
#include <stdlib.h>

void output(int table[],int n);        //输出数组的n个元素,略
void swap(int table[],int i,int j);    //交换,略

void create(int table[],int n)         //n个数存入table数组
{
//    randomize();                       //初始化随机数序列
    for(int i=0;i<n;i++)
        table[i]=rand() % 50;         //产生一个0~100之间的随机数
}

void selectsort(int table[],int n)     //对table数组元素进行选择排序
{                        
    for(int i=0;i<n-1;i++)             //n-1趟排序
    {
        int min=i;
        for(int j=i;j<n;j++)           //在从table[i]开始的部分数组元素中
            if(table[j]<table[min])    //寻找最小值
               min=j;                  //min记下本趟最小值的下标
        if(i!=min)
            swap(table,i,min);         //本趟最小值交换到左边
        cout<<i<<"~"<<n-1<<":  min["<<min<<"]="<<table[min]<<"  ";
        output(table,n);
    }
}

void main()
{
    const int N=8;
    int a[N];
    create(a,N);
    cout<<"N="<<N;
    output(a,N);
    selectsort(a,N);
}
/*程序运行结果 :
n=8  table: 18 6 6 16 2 13 3 11 
0~7:  min[4]=2  table: 2 6 6 16 18 13 3 11 
1~7:  min[6]=3  table: 2 3 6 16 18 13 6 11 
2~7:  min[2]=6  table: 2 3 6 16 18 13 6 11 
3~7:  min[6]=6  table: 2 3 6 6 18 13 16 11 
4~7:  min[7]=11  table: 2 3 6 6 11 13 16 18 
5~7:  min[5]=13  table: 2 3 6 6 11 13 16 18 
6~7:  min[6]=16  table: 2 3 6 6 11 13 16 18 


n=8  table: 41 17 34 0 19 24 28 8 
0~7:  min[3]=41    table: 0 17 34 41 19 24 28 8 
1~7:  min[7]=17    table: 0 8 34 41 19 24 28 17 
2~7:  min[7]=34    table: 0 8 17 41 19 24 28 34 
3~7:  min[4]=41    table: 0 8 17 19 41 24 28 34 
4~7:  min[5]=41    table: 0 8 17 19 24 41 28 34 
5~7:  min[6]=41    table: 0 8 17 19 24 28 41 34 
6~7:  min[7]=41    table: 0 8 17 19 24 28 34 41 

*/
void output(int table[],int n)         //输出数组的n个元素
{
    cout<<"  table: ";
    for(int i=0;i<n;i++)
        cout<<table[i]<<" ";
    cout<<"\n";
}

void swap(int table[],int i,int j)     //交换table[i]、table[j]的值
{                        
    int temp=table[i];
    table[i]=table[j];
    table[j]=temp;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -