【C語言】冒泡法排序
阿新 • • 發佈:2018-10-31
1.冒泡演算法:
思路如圖所示(圖片來自bilibili UP:正月點燈籠)
解釋:冒泡演算法的思路通俗一點就是每次將自己想要的數(最大值和最小值)放到陣列的最後一位,然後每次迴圈n-1項就可以達到排序的目的了。
程式碼如下:
#include "stdio.h" void Bubble(int arr[],int n); //宣告冒泡演算法函式 void sort(int srr[],int n);//宣告檢索排序數列函式 int main(){ int i,lenght; int arr[] = {1,4,5,3,2};//賦值排列陣列 lenght = sizeof(arr)/sizeof(int);//計算陣列元素 sort(arr,5);//呼叫檢索排序 for(i = 0; i < lenght;i++){//輸出結果 printf("%d\n",arr[i]); } } void sort(int arr[],int n){//每次冒泡演算法執行完畢,最小的數將會移動到最後一位。每次只需要檢索n-1 的陣列元素即可,故寫以下演算法 int i; for(i = n;i > 1;i--){ Bubble(arr,i);//5,4,3,2,1 } } void Bubble(int arr[], int n){ int i,temp; for(i = 1;i < n;i++){//每次檢索由排序傳來的n個數組元素,對其進行調換位置,將最小的放到最後一個元素 if(arr[i] > arr[i-1]){ temp = arr[i];//調換位置的通用演算法 arr[i] = arr[i-1]; arr[i-1] = temp; } } }
結果如下: