18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 編程學習 >> C語言 >> 正文

C語言——冒泡排序_冒泡排序c語言

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/8/9

冒泡排序的原理是:從(cong) 左到右,相鄰元素進行比較。每次比較一輪,就會(hui) 找到序列中最大的一個(ge) 或最小的一個(ge) 。這個(ge) 數就會(hui) 從(cong) 序列的最右邊冒出來。

以從(cong) 小到大排序為(wei) 例,第一輪比較後,所有數中最大的那個(ge) 數就會(hui) 浮到最右邊;第二輪比較後,所有數中第二大的那個(ge) 數就會(hui) 浮到倒數第二個(ge) 位置……就這樣一輪一輪地比較,最後實現從(cong) 小到大排序。

冒泡排序的原理動畫 

代碼如下

#include<stdio.h> void Bubble_sort(int arr[], int size) { int j,i,tem; for (i = 0; i < size-1;i ++)//size-1是因為(wei) 不用與(yu) 自己比較,所以比的數就少一個(ge) { int count = 0; for (j = 0; j < size-1 - i; j++) //size-1-i是因為(wei) 每一趟就會(hui) 少一個(ge) 數比較 { if (arr[j] > arr[j+1])//這是升序排法,前一個(ge) 數和後一個(ge) 數比較,如果前數大則與(yu) 後一個(ge) 數換位置 { tem = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tem; count = 1; } } if (count == 0) //如果某一趟沒有交換位置,則說明已經排好序,直接退出循環 break; } } int main() { int arr[10]; int i; printf("請輸入10個(ge) 數\n"); for (i = 0; i < 10; i++) //接收用戶的數值 { scanf("%d", &arr[i]); } printf("排序前的數組>"); for (i = 0; i < 10; i++) { printf("%d ", arr[i]); } printf("\n排序後的數組>"); Bubble_sort(arr, 10); for (i = 0; i < 10; i++) { printf("%d ", arr[i]); } return 0; }

值得注意的是函數中的定義(yi) 的count是為(wei) 了檢驗是否進行了元素的交換,是對代碼的一種優(you) 化

運行結果>

 

Tags:冒泡排序,排序,C語言  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊。 昵稱:注冊  登錄
    [ 查看全部 ] 網友評論
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢