关闭

【数组】14周项目四(二)。选择排序数列

标签: c++iostreamnamespace数组
481人阅读 评论(0) 收藏 举报
上机内容:C++程序的编写和运行
上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程
我的程序:
/*
Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作    者:赵玲玲
* 完成日期:2013 年 12 月 2 日
* 版 本 号:v1.0
* 输入描述: 无
* 问题描述:选择排序法排序数字
* 程序输出: 略
* 问题分析:数组应用,循环应用(嵌套循环使小数上浮,调换顺序),不同功能的函数调用
*/

#include <iostream>
using namespace std;
void bubble_sort(int a[],int n);                     //两个函数bubble_sort和output_array的声明
void output_array(int a[],int n);              
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;
}
//请在下面定义bubble_sort和output_array函数
void bubble_sort(int a[],int n)
{
	int t,i,j,k;
	for(i=1;i<=n;i++)                                  //共进行n轮比较
	{
		k=i;                                           //先设k为最小
		for(j=i+1;j<=n-i;j++)                          //每轮进行(10-i)次两两比较
		{
			if(a[j]<a[k])                              //若前面的数小于后面的数
			{
				k=j;                                   //通过交换得到k为最小
			}
		}
		t=a[k];
		a[k]=a[i];
		a[i]=t;                                         //小数排列在最前
	}
    return ;
}
void output_array(int a[],int n)
{
	int i;
	cout<<"数字降序排列为:"<<endl;
	for(i=1;i<n;i++)                                    //交换后输出
	{
		cout<<a[i]<<" ";
	}
	cout<<endl;
	return ;
}
张玉老师的方法
#include <iostream>
using namespace std;
void arrAxuanze(int arr[10],int len2);
int main()
{
    int i,arr[10]= {1,2,4,3,8,7,9,4,5,9};
    arrAxuanze(arr,10);
    return 0;
}
void arrAxuanze(int arr[10],int len2)
{
    int i,j,t;
    for(i=0; i<len2-1; i++)          //十个数循环九次
    {
        for(j=0; j<len2; j++)        //每次循环求出最大
        {
            if(arr[i]<arr[i+1])
            {
                t=arr[i+1];
                arr[i+1]=arr[i];
                arr[i]=t;
            }
        }

    }
    for(i=0; i<10; i++)
    {
        cout<<arr[i]<<'\t';
    }
}






运行结果:
心得体会:还好...张玉老师的方法,看的很懂

知识点总结:选择排序法就是多用了一个中间变量,让每一个元素与之相比较,其承载的是最小(或最大)的元素

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:184236次
    • 积分:4514
    • 等级:
    • 排名:第6758名
    • 原创:272篇
    • 转载:0篇
    • 译文:0篇
    • 评论:127条
    文章分类
    最新评论