常见算法C语言实现

排序算法

  1. 冒泡排序
   // bubble sort                                           
   // loop to control number of passes                      
   for (int pass = 1; pass < SIZE; ++pass) {                
      // loop to control number of comparisons per pass     
      for (size_t i = 0; i < SIZE - 1; ++i) {               
         // compare adjacent elements and swap them if first
         // element is greater than second element          
         if (a[i] > a[i + 1]) {                             
            int hold = a[i];                                
            a[i] = a[i + 1];                                
            a[i + 1] = hold;                                
         }                                                  
      }                                                     
   }

解释:若元素有n个,外层循环循环n-1次,因为当排序了n-1遍时,数组的后n-1个元素是已经排好的,那么剩下的一个元素自然是最小的(最大的),处于第一个位置,于是整个序列便是有序的。

假设从0至n-1排序,通过不断地判断当前遍历元素是否比下一个元素大(或小),大则与下一个元素交换位置,第一遍冒泡遍历使得最大的元素跑到最大的位置上去,第二遍冒泡使得次大的元素跑到次大的位置上去,以此类推。

生成海报

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注