当前位置:   article > 正文

冒泡排序数据结构实验报告_实验报告表:冒泡排序实验过程数据与结果 实验内容 操作名称 实验数据

实验报告表:冒泡排序实验过程数据与结果 实验内容 操作名称 实验数据
  • 实验目的:

  1. 理解冒泡排序算法的原理和基本思路。
  2. 熟悉冒泡排序在实际应用中的场景和优化方法。
  • 实验内容(实验题目与说明)

编写一个双向冒泡排序算法,即在排序过程中以交替的正、反两个方向进行遍历。若第一趟把关键字最大的记录放到最末尾,则第二趟把关键字最小的记录放到最前端,如此反复进行之。

三、算法设计(核心代码或全部代码)

#include <stdio.h>

#define max 10

void bubbleSort(int arr[], int size) {

    int i, j;

    for (i = 0; i < size - 1; i++) {  // 控制轮数

        for (j = 0; j < size - i - 1; j++) {  //控制每轮比较次数

            if (arr[j] > arr[j + 1]) {  // 如果前一个数大于后一个数,则交换它们的位置

                int temp = arr[j];

                arr[j] = arr[j + 1];

                arr[j + 1] = temp;

            }

        }

    }

}

 

int main() {

    int arr[max], i;

 

    // 输入数组元素

    printf("输入 %d 个数: ", max);

    for (i = 0; i < max; i++) {

        scanf("%d", &arr[i]);

    }

 

    // 排序

    bubbleSort(arr, max);

 

    // 输出排序后的数组

    printf("排序后的结果: ");

    for (i = 0; i < max; i++) {

        printf("%d ", arr[i]);

    }

 

    return 0;

}

  • 运行与测试(测试数据和实验结果分析

b9e50ccb32d84ca394696f5647b56531.png

程序接收用户输入的10个整数,并将它们存储在数组 arr 中。然后,通过调用冒泡排序算法对这些整数进行排序。从数组的第一个元素开始,逐个比较相邻的两个元素的大小。如果前一个元素大于后一个元素,则交换它们的位置。通过这样的比较和交换操作,每一轮都会将当前最大的元素移动到数组的末尾。

  • 总结与心得:

冒泡排序是交换排序中一种简单的排序方法。其基本思想是对所有相邻的关键字值进行比效,如果是逆顺(a[j]>a[j+1]),则将其交换,最终达到排序的目的。双向冒泡排序算法是对传统冒泡排序算法的一种改进,通过同时从左到右和从右到左两个方向进行比较和交换,减少了排序的轮数。在开始编写代码之前,我首先对双向冒泡排序算法的原理进行了深入的学习和理解。这包括了如何确定左右边界、两个方向的比较和交换操作等。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/849033
推荐阅读
相关标签
  

闽ICP备14008679号