编写程序,用冒泡法和指针两种方式对10个数进行排序

编写程序,用冒泡法和指针两种方式对10个数进行排序
初学c语言,希望能给点建议

冒泡和指针不矛盾啊。

#include <iostream>

using namespace std;

void bubbleSort(int *arr, int n){
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-i-1;j++){
            if(arr[j]>arr[j+1]){
                swap(arr[j],arr[j+1]);
            }
        }
    }
}

int main()
{
    int arr[10]={10,9,8,7,6,5,4,3,2,1};
    bubbleSort(arr,10);
    cout<<"排序后的结果为:";
    for(int i=0;i<10;i++){
        cout<<arr[i]<<" ";
    }
    return 0;
}

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7459464
  • 这篇博客你也可以参考下:编写C语言程序,使用冒泡法,输入10个数,将其按从大到小的方式重新排列
  • 除此之外, 这篇博客: 从键盘上输入10个整数,用冒泡法对这10个数进行排序(由小到大)。中的 输入 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 以空格分隔的10个整数

  • 您还可以看一下 Abel小智老师的嵌入式开发系统学习路线 从基础到项目 精品教程 工程师必备课程 物联网课程中的 你必须要了解的数据结构小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    使用冒泡排序和指针两种方式对一组有10个数的数据进行排序的代码如下:

    #include <stdio.h>
    
    void bubbleSort(int arr[], int len) {
        int i, j, temp;
        for (i = 0; i < len - 1; i++) {
            for (j = 0; j < len - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    
    void printArray(int arr[], int len) {
        for (int i = 0; i < len; i++) {
            printf("%d ", arr[i]);
        }
        printf("\n");
    }
    
    void sortIntArrayWithPointer(int *arr, int len) {
        int *p, *q, temp;
        for (p = arr; p < arr + len - 1; p++) {
            for (q = p + 1; q < arr + len; q++) {
                if (*p > *q) {
                    temp = *p;
                    *p = *q;
                    *q = temp;
                }
            }
        }
    }
    
    int main() {
        int array[] = {10, 6, 9, 3, 5, 2, 7, 1, 4, 8};
        int len = sizeof(array) / sizeof(array[0]);
    
        printf("Before sorting: ");
        printArray(array, len);
    
        bubbleSort(array, len);
        printf("After bubble sort: ");
        printArray(array, len);
    
        sortIntArrayWithPointer(array, len);
        printf("After sorting with pointer: ");
        printArray(array, len);
    
        return 0;
    }
    

    代码中定义了一个 bubbleSort 函数来实现冒泡排序,这个函数接收一个数组和数组的长度,然后按照冒泡排序的思想对数组进行排序。

    同时,还定义了另一个函数 sortIntArrayWithPointer,这个函数接收一个整型数组指针 arr 和数组长度 len,也用指针方式来实现排序。首先在外层循环中遍历除最后一个元素外的所有元素,内层循环中遍历 p 后面的所有元素,如果 p 所指的元素的值大于 q 所指的元素的值,就交换它们的位置。

    main 函数中,我们定义了一个整型数组,然后先输出数组中的元素,再调用 bubbleSort 函数和 sortIntArrayWithPointer 函数进行排序并输出排序后的结果。最后返回 0 表示程序运行正常结束。