氣泡排序 優化後的氣泡排序

2021-10-10 13:03:00 字數 907 閱讀 1508

●氣泡排序法

演算法原理:

依次比較相鄰兩個元素的大小,若後面的比前面的小,則交換兩個元素的位置

對每一對相鄰元素作同樣的工作,從第一對到最後一對。

進行一輪比較交換下來,最後的元素就會是最小的數了,這個數就不用參與後面的比較操作了

思路:遍歷陣列,對陣列中相鄰的兩個元素進行比較,如果需要公升序,前乙個資料大於後乙個資料時,

交換兩個位置上的資料,直到所有的資料比較完,此時,最大的資料已經放在陣列的末尾。

除最大資料已經排好序外,其餘資料還是無需,對剩餘資料採用與上述類似的方式

進行處理即可

寫法一:

void

bubblesort

(int

*arr,

int n)}}

}///

///寫法二:

void

bubblesort

(int array,

int size)}}

}int

main()

;int n=

sizeof

(arr)

/sizeof

(arr[0]

);bubblesort

(arr,n)

;int i=0;

for(i=

0;i)return0;

} 優化:如果某次冒泡結束後,序列已經有序了,後面剩餘元素的冒泡可以省略

void

bubblesort

(int array,

int size)

}// 如果本次冒泡中,元素沒有交換,則本次開始冒泡時,資料已經有序了,後面的冒泡可以不用進行了if(

!ischange)

return;}

}

氣泡排序 氣泡排序演算法優化

常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...

C 氣泡排序 氣泡排序的優化

本文包含氣泡排序的三種實現方式 分別為氣泡排序初級版,公升級版,終級版 自己起的名字 使用時只要使用終極版就本以了,終級版為公升級版的優化版本 至於初極版和公升級版只是為了幫助理解 氣泡排序的時間複雜度為o n include include include include include incl...

氣泡排序以及氣泡排序的優化

很早接觸過氣泡排序法,但一直沒有真正的理解,只是為了記住而學習,今天又重新看了一下,其實氣泡排序法第一次排序會把最大的冒到最上面,第二次會把次大的泡冒到最大的後面,一次類推 另外在排序的次數上會逐漸減少。看 void bubble sort int a,int n 其實還可以優化一下,當發現沒有進行...