新聞中心
C語言冒泡排序法代碼
冒泡排序是排序算法的一種,思路清晰,代碼簡潔,常被用在大學(xué)生計算機課程中。“冒泡”這個名字的由來是因為越大的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端,故名。這里以從小到大排序為例進行講解。基本思想及舉例說明
創(chuàng)新互聯(lián)是一家專業(yè)提供興安盟企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、網(wǎng)站制作、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為興安盟眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
冒泡排序的基本思想就是不斷比較相鄰的兩個數(shù),讓較大的元素不斷地往后移。經(jīng)過一輪比較就,選出最大的數(shù);經(jīng)過第2輪比較,就選出次大的數(shù),以此類推。下面以對 3 2 4 1 進行冒泡排序說明。
1.這個算法用rand函數(shù)產(chǎn)生新的要排序的數(shù)據(jù),與已有的有序數(shù)列中的數(shù)據(jù)依次比較,如果遇到比他大的數(shù)據(jù),就從該數(shù)據(jù)開始,一直交換到末尾,達到一個插入的效果。從而形成有序的數(shù)列。
2.此外,只用rand函數(shù)并不能達到真正隨機的效果。如果要實現(xiàn)真正隨機的效果,還要配合srand函數(shù)才行。
3.具體代碼如下:#include "stdio.h"#include "stdlib.h"void main(){int a[10],temp,r; printf("請輸入一個種子\n"); scanf("%d",r);srand(r); for(int i=0;i9;i++) 。
如何用c語言編寫冒泡排序的程序?
對擁有 n 個元素的數(shù)組 R[n] 進行 n-1 輪比較。
第一輪,逐個比較 (R[1], R[2]),? (R[2], R[3]),? (R[3], R[4]),? …….? (R[N-1], R[N]),最大的元素被移動到 R[n] 上。
第二輪,逐個比較 (R[1], R[2]),? (R[2], R[3]),? (R[3], R[4]),? …….? (R[N-2], R[N-1]),次大的元素被移動到 R[n-1] 上。
。。。。。。
以此類推,直到整個數(shù)組從小到大排序。
具體的代碼實現(xiàn)如下所示:
#include stdio.h
int main(){
int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9};
int i, j, temp;
//冒泡排序算法:進行 n-1 輪比較
for(i=0; i10-1; i++){
//每一輪比較前 n-1-i 個,也就是說,已經(jīng)排序好的最后 i 個不用比較
for(j=0; j10-1-i; j++){
if(nums[j] nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
//輸出排序后的數(shù)組
for(i=0; i10; i++)
{
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
C語言冒泡排序法是什么?
冒泡排序法,是C語言常用的排序算法之一,意思是對一組數(shù)字進行從大到小或者從小到大排序的一種算法。
具體方法是:
相鄰數(shù)值兩兩交換。從第一個數(shù)值開始,如果相鄰兩個數(shù)的排列順序與我們的期望不同,則將兩個數(shù)的位置進行交換(對調(diào));如果其與我們的期望一致,則不用交換。重復(fù)這樣的過程,一直到最后沒有數(shù)值需要交換,則排序完成。
C語言常見的排序算法:
1、冒泡排序
基本思想:比較相鄰的兩個數(shù),如果前者比后者大,則進行交換。每一輪排序結(jié)束,選出一個未排序中最大的數(shù)放到數(shù)組后面。
2、快速排序
基本思想:選取一個基準元素,通常為數(shù)組最后一個元素(或者第一個元素)。從前向后遍歷數(shù)組,當遇到小于基準元素的元素時,把它和左邊第一個大于基準元素的元素進行交換。在利用分治策略從已經(jīng)分好的兩組中分別進行以上步驟,直到排序完成。
3、直接插入排序
基本思想:和交換排序不同的是它不用進行交換操作,而是用一個臨時變量存儲當前值。當前面的元素比后面大時,先把后面的元素存入臨時變量,前面元素的值放到后面元素位置,再到最后把其值插入到合適的數(shù)組位置。
4、直接選擇排序
基本思想:依次選出數(shù)組最小的數(shù)放到數(shù)組的前面。首先從數(shù)組的第二個元素開始往后遍歷,找出最小的數(shù)放到第一個位置。再從剩下數(shù)組中找出最小的數(shù)放到第二個位置。以此類推,直到數(shù)組有序。
以上內(nèi)容參考? ?百度百科-排序算法、百度百科-c語言冒泡排序
網(wǎng)頁題目:c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
網(wǎng)站URL:http://ef60e0e.cn/article/ddshdch.html