c语言 冒泡排序法
一、什么是冒泡法
冒泡排序是一種簡單的排序算法,它也是一種穩定排序算法。
其實現原理是重復掃描待排序序列,并比較每一對相鄰的元素,當該對元素順序不正確時進行交換。一直重復這個過程,直到沒有任何兩個相鄰元素可以交換,就表明完成了排序。
二、舉例實現 (從小到大)
以冒泡法(從小到大)為例
原理:比較相鄰的元素,將值大的元素交換到右邊
原始數組數據:8 4 20 5 總共4個數 len = 4
1.冒泡法過程列出:
| 第0輪 | 4 8 20 5 、4 8 20 5 、4 8 5 20 ---------max = 20 |
| 第1輪 | 4 8 5、4 5 8 ------------------------------ max =8 |
| 第2輪 | 4 5 -----------------------------------------------max = 5 |
2.冒泡法的兩個循環i j 確定:
i = 比較的輪數
j = 每一輪比較中相鄰數比較的次數
4個數,經過3輪比較,i = 3
即:
j的規律如下:
| 0 | 3 |
| 1 | 2 |
| 2 | 1 |
3.冒泡法的編程:
#include <stdio.h>void sort(int arry[],int len) {int i,j,tmp;for(i=0;i<len-1;i++){for(j=0;j<len-1-i;j++){if(arry[j] > arry[j+1]){tmp = arry[j];arry[j] = arry[j+1];arry[j+1] = tmp; } } } }int main() { int m; int arry[4] = {8,4,20,5};int len = sizeof(arry)/sizeof(arry[0]);sort(arry,len); for(m=0;m<len;m++){printf("%d ",arry[m]); }putchar('\n');return 0; } //打印結果:4 8 5 20如果要按照從大到小排列只要改變if條件:
if(arry[j] < arry[j+1]){------}總結
- 上一篇: 最新emoji表情代码大全_最新出早晨好
- 下一篇: 数字电路测试题二