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

原创 2013年12月02日 09:07:39
上机内容: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';
    }
}






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

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

相关文章推荐

【数组】14周项目四(一)。字符数组排序

上机内容:C++程序的编写和运行 上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程 我的程序:/* Copyright (c) 2013, 烟台大学计算机学院 * All rig...

14周课后自主-项目二-带姓名的成绩单(初始化数组,非文件)

#include #include using namespace std; const int num=8; int main() { int i,j; double t; string te...

第十四周项目4(拓展1)--字符数组选择排序

/* *程序的版权和版本声明部分: *Copyright(c)2013,烟台大学计算机学院学生 ...

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

选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小...
  • MIKASA3
  • MIKASA3
  • 2014年11月23日 12:13
  • 870

【数组】14周项目六(二)。str1和str2接起来存放到str3中

上机内容:C++程序的编写和运行 上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程 我的程序:/* Copyright (c) 2013, 烟台大学计算机学院 * All rig...

【二维数组】14周项目二。杨辉三角

上机内容:C++程序的编写和运行 上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程 我的程序:/* Copyright (c) 2013, 烟台大学计算机学院 * All righ...

【数组】14周项目六(四)。str1和str2连接存放到str1中

上机内容:C++程序的编写和运行 上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程 我的程序:/* Copyright (c) 2013, 烟台大学计算机学院 * All rig...

Java写的数组选择排序

  • 2009年03月30日 20:35
  • 1KB
  • 下载

04-Java基础(数组-常见操作-选择排序

  • 2016年04月28日 13:24
  • 17.46MB
  • 下载

【数组】14周项目六(3)去掉str中的空格存放在str中(自己for版)

上机内容:C++程序的编写和运行 上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程 我的程序:/* Copyright (c) 2013, 烟台大学计算机学院 * All rights ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【数组】14周项目四(二)。选择排序数列
举报原因:
原因补充:

(最多只允许输入30个字)