第十六周实验报告1
来源:互联网 发布:迈腾轮毂尺寸数据 编辑:程序博客网 时间:2024/06/07 00:54
实验目的:学会冒泡排序算法
实验内容:实现冒泡排序算法,并将之定义为一个函数,其中参数是指向数组的指针变量
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作
* 完成日期:
* 版本号:
* 对任务及求解方法的描述部分
* 输入描述:要排序的数据在程序中初始化
* 问题描述:实现冒泡排序
* 程序输出:排序后的结果
* 程序头部的注释结束(此处也删除了斜杠)
#include <iostream>
using namespace std;
void bubble_sort(int *p,int num); //用于数据排序的函数
void output_array(int *q,int num); //用于数据输出的函数
int main()
{
int a[20] = {86, 46, 22, 18, 77, 45, 32, 80, 26, 88, 57, 67, 20, 18, 28, 17, 54, 49, 11, 16};
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 *p, int num)
{
int i, j, t;
for(i = 1; i <= num - 1; i++) //循环趟数从1开始计时,一共需要比较数据次数减1即num-1趟
{
for(j = 0;j <= num - i - 1; j++) //每趟中,从0开始计,需要比较num-i-1次
{
if(*(p+j) < *(p+j+1)) //每次比较两个数据,每当前一个数据小于后一个数据时,两个数据调换位置
{
t = *(p + j); *(p+j) = *(p + j + 1); *(p + j + 1) = t;
}
}
}
}
void output_array(int *q, int num)
{
int i;
for(i = 0; i < num; i++)
{
cout << *(q + i) <<" ";
}
}
运行结果:
经验积累:
1.对冒泡法运作机理的熟悉掌握是该程序得以实现的基础。
2.毕竟是要求用指针完成程序,因此对于指针及指针变量的清楚认知是必不可少的。
3.学会程序的改写以及嫁接,以前做过数组冒泡法的练习,其实只要熟悉指针,将以前的程序稍加改写便可得到结果。
上机感言:
必须承认,自己对指针的了解程度明显不够,因此运用起来显得有些生搬硬套,更不用提熟练掌握了,唉~课本还是看的不够,指针真的是个难点,还要加油,重点突破。
- 第十六周实验报告1
- 第十六周实验报告1
- 第十六周实验报告1
- 第十六周实验报告1
- 第十六周实验报告1
- 第十六周实验报告1
- 第十六周实验报告1
- 第十六周实验报告(1)
- 第十六周实验报告(1)
- 第十六周实验报告任务1
- 第十六周实验报告2
- 第十六周实验报告3
- 第十六周实验报告2
- 第十六周实验报告2
- 第十六周实验报告2
- 第十六周实验报告2.0
- 第十六周实验报告3
- 第十六周实验报告3
- 英译汉小词典
- python命令行参数
- C#权限设计代码
- Oracle APEX系列(一) 安装
- 在Red Hat Linux 5.1.19.6上安装Oracle10.2.0.1
- 第十六周实验报告1
- 国内首个HTML5应用开发平台AppCan开启限量内测
- XP系统中如何查哪些网址曾经远程连接过本机器。
- bootstrap 与 rails 2.3.8整合之:will_paginate插件的使用
- 转帖 3DEX加密
- 国内外著名开源b2c电子商务系统比较包括asp.net和php
- 解决Ext.form.TextField的 maxLength 属性失效问题
- android开发步骤
- SQL注入常用函数