DeBug 发表于 2024-8-13 00:36:33

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

冒泡排序:

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


我们以一个数组举例,假设有一个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>arr)
      {
            temp = arr;
            arr = arr;
            arr = 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);
    printf("mian init\n");
    exportArray(arr,len);
    bubleSort(arr,len);
}
页: [1]
查看完整版本: 小白关于常见的几种算法的一些看法