2024-8-13 00:36:33 [显示全部楼层]
561浏览
查看: 561|回复: 0

小白关于常见的几种算法的一些看法

[复制链接]
冒泡排序:

冒泡排序是一种简单的排序算法,其原理是通过不断比较相邻的元素,并将不符合排序顺序的元素交换位置,从而使得大(小)的元素逐渐“冒泡”到序列的尾部,直到这个序列按照你需要的顺序排列。


我们以一个数组举例,假设有一个int类型的数组  int arr[] = {64,34,25,12,22};
数组内的5个元素的排列顺序是杂乱无章的,我们想要这些元素按照从小到大,或者从大到小的顺序排列。我们可以按照冒泡排序进行排序。首先我们需要确认数组内有多少个元素,用于确认需要进行几次比较大小以及交换它俩的顺序。这个数组内共有5个元素,因此我们比较4次即可选择出最大(小)的元素,并将其放至最后。这一步做完之后,前面的四个元素依然是杂乱无章的。因此我们可以对前四个元素进行同样的操作。也就是选择出这四个元素中最大的一个,并将其排至最后。其余的按照同样的步骤操作,即可得到想要的序列。一下为代码展示。


#include <stdio.h>


/*打印数组中的元素*/
void exportArray(int arr[],int n){
    for(int i = 0;i<n; i++){
        printf("%d",arr);
        printf(",");
    }
    printf("\n");
}
/*冒泡排序算法*/
void bubleSort (int arr[],int n){
    int j=0;
    int temp=0;
    int step = 0;
    int i =0;
   for (i= 0; i<n-1; i++){
    printf("第%d轮\n",i+1);
    for(j=0; j<n-i-1;j++){                             
        step++;
        if(arr[j]>arr[j+1])
        {
            temp = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = temp;
        }
        printf("Sorted step %d\n",step);
        exportArray(arr,n);
    }


   }
   
}




int main (){
    int arr[] = {64,34,25,12,22};
    int len = sizeof(arr)/sizeof(arr[0]);
    printf("mian init\n");
    exportArray(arr,len);
    bubleSort(arr,len);
}
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
关于楼主
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail