第16周报告1:冒泡排序指针版

简介: 题目:(数组的排序) 按模板中的要求,用指向数组的指针变量作为形式参数编写函数,完成冒泡排序。重点体会:(1)冒泡排序算法;(2)用指向数组的指针变量作为形式参数,用数组名(即数组的地址)作为实际参数,函数中对于形参的改变实质上也就是对实参对应内存单元的改变;(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递。详见 指导书 实验目的:学会冒泡排序算法 实验内容:实现冒

题目:(数组的排序) 按模板中的要求,用指向数组的指针变量作为形式参数编写函数,完成冒泡排序。重点体会:(1)冒泡排序算法;(2)用指向数组的指针变量作为形式参数,用数组名(即数组的地址)作为实际参数,函数中对于形参的改变实质上也就是对实参对应内存单元的改变;(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递。详见 指导书


实验目的:学会冒泡排序算法

实验内容:实现冒泡排序算法,并将之定义为一个函数,其中参数是指向数组的指针变量

/* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:   bubble.cpp                          
* 作    者:   贺利坚                          
* 完成日期:   2011 年 12 月 13 日
* 版 本 号:   v1.0      
 
* 对任务及求解方法的描述部分
* 输入描述:要排序的数据在程序中初始化
* 问题描述:实现冒泡排序
* 程序输出:排序后的结果
*/
#include <iostream>
using namespace std;
void bubble_sort(int *p, int num);  //不要对自定义函数的声明有任何改动
void output_array(int*, int);
int main( )   //不要对main函数有任何改动
{
   inta[20]={86,46,22,18,77,45,32,80,26,88,57,67,20,18,28,17,54,49,11,16};
   intb[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 *p, int num)
{
   int i,j,t;
   for(j=0;j<num-2;j++)                                               //共进行num-1趟比较
             for(i=0;i<num-j-1;i++)                                   //在每趟中要进行num-j次两两比较
                      if(*(p+i)<*(p+i+1))                             //如果前面的数小于后面的数
                      {
                               t=*(p+i);                              //交换两个数的位置,使小数下沉
                               *(p+i)=*(p+i+1);
                               *(p+i+1)=t;
                      }
   return;
}
 
void output_array(int *p, int num)
{
   int i;
   for(i=0;i<num-1;i++)
      cout<<*(p+i)<<",";
   cout<<*(p+num-1)<<"\n"; //我这样处理,可以使最后一个数后面不加逗号,看得更舒服
   return;
}

对于输出函数,还可以这样写:

void output_array(int *p, int num)
{
   int i;
   for(i=0;i<num-1;i++,p++)
             cout<<*p<<",";
   cout<<*p<<"\n";
   return;
}
相对而言,bubble_sort()函数还是照原样写好一些,其中的道理留给同学们思考吧。

同学们晕或不晕,都正常。正如很多同学感叹的:要多看书,快到期末了,到了学习效率最高的时候了,加油!

 

目录
相关文章
数据结构上机实践第七周项目3 - 负数把正数赶出队列
数据结构上机实践第七周项目3 - 负数把正数赶出队列
115 0
数据结构上机实践第七周项目3 - 负数把正数赶出队列
|
Java 编译器 vr&ar
第九周:指针
C语言独有的东西,也是这门语言最独特的地方,在后续的数据结构中你会经常看到指针的
113 0
|
C++ 开发工具 IDE
2014秋C++第16周 项目 指针和数组、函数
课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。  【项目1-数组的排序】按给定部分程序的要求,用指向数组的指针变量作为形式参数编写函数,完成排序。重点体会:(1)排序算法,可以是冒泡,也可以是选择;(2)用指向数组的指针变量作为形式参数,用数组名(
1260 0
|
C++
2014秋C++ 第15周项目 指针基础
课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。  【项目1-打入“内部”寻“内幕”】下面是一段使用了指针的程序。请利用“单步”执行的方式运行程序,深刻理解“指针变量存储的是地址值”、“通过指针变量间接访问”等概念。将在执行过程中留下深刻映像的界
1045 0
|
存储 人工智能 C++
2014秋C++ 第14周项目 二维数组
课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。  【项目1-折腾二维数组】创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后: 通过键盘输入,使后两列的10个元素获得值; 按行序优先输出数组元素; 将所有元素值乘
1456 0
|
人工智能 C语言 数据建模
计算机科学-第9周 数组、结构体、指针综合练习 题目及参考解答
《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 发现第9周的题目及参考没有公布,补上。 1、阅读程序阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解指针的用法(1) #include&lt;stdio.h&gt; int main(){ char a[]="Hello Wo
1261 0
|
数据安全/隐私保护 Windows 存储
计算机科学-第8周 字符串和动态数组 题目及参考解答
《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1、阅读程序 阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解指针的用法(1) #include&lt;stdio.h&gt; int main() { int i; for(i='A'; i&lt;'I'; i++,
1084 0
|
人工智能 存储
计算机科学-第7周 指针及应用 题目及参考解答
《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/137055971、阅读程序:阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解指针的用法(1)#include&lt;stdio.h&gt; int main() { int a, b, temp; int *p1, *p2; p
1131 0
|
C++ iOS开发
C++第2周项目3——用结构体数组作计算
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8635385 【项目3-用结构体数组作计算】接项目2,(1)从文件中读出数据,存放到你定义的结构体数组中,即项目2(1);(2)求出每名同学的总分(可以在读
1200 0
|
C++ 存储
C++第2周项目1——有序的结构体数组
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8635385 【项目1-有序的结构体数组】在程序中提供了一个已经初始化的结构体,包括学生的学号、C++、高数、英语成绩。编程序,要求对结构体排序并输出。请
1060 0