现在的位置: 首页 > 综合 > 正文

14–4–2选择法排数字

2013年06月05日 ⁄ 综合 ⁄ 共 930字 ⁄ 字号 评论关闭

/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:纪丽娜
*完成日期:2013年 12月1号
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 无
*问题描述:输入若干个数,进行排序
*程序输出:排序后的若干个数
*问题分析:选择法
*算法设计:
*/
#include <iostream>
using namespace std;
void bubble_sort(int a[],int n);
void output_array(int a[],int n);//两个函数bubble_sort和output_array的声明
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};
    bubble_sort(a,20);   //用选择法按降序排序a中元素
    output_array(a,20);   //输出排序后的数组
    bubble_sort(b,15);   //用选择法按升序排序b中元素
    output_array(b,15);   //输出排序后的数组
    return 0;
}
void bubble_sort(int a[],int n)
{
    int i,j,k, t;  
    for(i=0; i<n-1; i++)  
    {  
       for(j=i+1; j<n; j++)  
		{
		   k=i; 
		  if(a[j]<a[k])
		   k=j;      
          t=a[j];    //交换a[i]和a[j]   
          a[j]=a[k];  
          a[k]=t;
		}
    }  
}
void output_array(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
   {
       cout<<a[i]<<" ";
   }
    cout<<endl;
}

终于,终于。。。明白两种排序法的不同了。头都疼了。。。哎╮(╯▽╰)╭

还是写出来吧。。。

冒泡永远是两个相邻的下标相比例如:a[1],与a[2]。而选择是改变a[0]里存的值,与a[1]以后的比较。这就是两者的不同,我觉得选择法更简单,虽然我理解他花了比冒泡法长的时间。。。。喵。。。。

抱歉!评论已关闭.