【数组】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';
    }
}






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

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

沉痛悼念倪晋麟同志

南京十大杰出青年倪博士车祸身亡   几个月没有休息的青年博士,在下着暴雨的星期六,仍放弃休息,到单位加班至晚上9点半,当他骑着助力车从一个工作区准备到另一个工作区继续加班,至模范西路时,突然与一辆出...
  • nsynet_sky
  • nsynet_sky
  • 2011年09月25日 22:14
  • 11675

【数组】14周项目四。冒泡法排序

/* Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作    者:赵玲玲 * 完成日期:2013 年 11 月 27 日 * 版 本 号...
  • u012370487
  • u012370487
  • 2013年11月29日 15:45
  • 563

14周项目二

换了选择排序做的题 因为第二遍做遍历的时候  手残打成了从0开始。导致排序失败= =来回找不到错位在哪里,思维定式。没难度的题目做了三个小时也是要死要死的。感觉真是爽爆了 #include #...
  • ggzk1995
  • ggzk1995
  • 2014年11月30日 16:28
  • 232

数列排序(选择排序法和冒泡排序法)

问题描述   给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1 输入格式   第一行为一个整数n。   第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式 ...
  • B_evan
  • B_evan
  • 2016年03月10日 22:03
  • 424

【数组】14周项目六

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

第14周项目10-选择排序

/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: fibnacci.cpp * 作 ...
  • u012369559
  • u012369559
  • 2013年11月30日 11:29
  • 416

第14周项目二

/* * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: array.cpp * 作 者: 李中意 * 完...
  • u012369267
  • u012369267
  • 2014年05月27日 19:06
  • 403

八大排序算法之二元选择排序

选择排序的思想即在要排序的一组数中,选出最大(或者最小)的一个数与第一个位置的数字进行交换;然后在剩下的一组数中再找最大(或者最小)的与第二个位置进行交换,直到第n-1个元素(倒数第二个数)和第n个元...
  • qq_26627671
  • qq_26627671
  • 2015年11月11日 21:11
  • 1682

关于数组的排序问题(冒泡排序,选择排序,插入排序)

方法一:冒泡排序法 代码: public int[] bubbleSort(int[] a){ //冒泡排序算法 //每趟不断将相邻记录两两比较,并按“前小后大”(或“前大后小”)规...
  • qq_32144341
  • qq_32144341
  • 2016年05月10日 22:31
  • 2478

选择排序----数组实现

/*select_sort.cpp--------选择排序的数组实现*/ /*          算法:                    最小值初始化为第一个。依次和第2、3……个进行比较...
  • maidi_2015
  • maidi_2015
  • 2015年08月22日 11:22
  • 503
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【数组】14周项目四(二)。选择排序数列
举报原因:
原因补充:

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