第13周项目4-选择排序法降序排列数组

选择排序法
    每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。
    第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换。

问题及代码:

/* 
*Copyright (c)2014,烟台大学计算机与控制工程学院 
*All rights reserved. 
*文件名称:number.cpp 
*作    者:单昕昕 
*完成日期:2014年11月23日 
*版 本 号:v1.0 
* 
*问题描述:用选择排序法给数组元素排序。
*程序输出:输出逆序排列后的数组。
*/  
#include<iostream>
void select_sort(int a[],int n);
void output_array(int a[],int n);
using namespace std;
int main( )
{
    int a[20]= {86,76,62,58,77,85,92,80,96,88,77,67,80,68,88,87,64,59,61,76};
    int b[15]= {27,61,49,88,4,20,28,31,42,62,64,14,88,27,73};
    select_sort(a,20);   //用选择排序法按降序排序a中元素
    output_array(a,20);   //输出排序后的数组
    select_sort(b,15);   //用选择排序法按降序排序b中元素
    output_array(b,15);   //输出排序后的数组
    return 0;
}
//定义select_sort和output_array函数
void select_sort(int a[],int n)
{
    int i,j,t;
    for(i=0; i<n-1; i++)  //排序进行n-1趟
    for(j=i+1; j<n; j++)  //将按要求选出的元素排在数组的最后
        if(a[i]<a[j])   //逆序排列数组中的元素
        {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    return;
}
void output_array(int a[],int n)
{
    int i;
    for(i=0; i<n; ++i)
        cout<<a[i]<<" ";
    cout<<endl;
    return;
}

 

运行结果:

 

知识点总结:

选择排序法。

 

学习心得:

感觉和冒泡法差不多阿,只是这个从整体着手,每次将元素都排在最后,冒泡是两两相较排列。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值