用冒泡排序法对输入的10个数进行升序排序 并存入数组中

C语言程序如下;

#include <stdio.h> 

#define ARR_LEN 255 /*数组长度上限*/

#define elemType int /*元素类型*/

/* 冒泡排序 */

/* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */

/* 2. 对所有元素均重复以上步骤,直至最后一个元素 */

/* elemType arr[]: 排序目标数组; int len: 元素个数 */

void bubbleSort (elemType arr[], int len) {

elemType temp;

int i, j;

for (i=0; i<len-1; i++) /* 外循环为排序趟数,len个数进行len-1趟 */

for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */

if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */

temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

int main (void) {

elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4};

int len = 10;

int i;

bubbleSort (arr, len);

for (i=0; i<len; i++)

printf ("%d", arr[i]);

putchar ('
');     

return 0;

}

扩展资料:

算法分析

时间复杂度

若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数C

和记录移动次数M均达到最小值:

所以,冒泡排序最好的时间复杂度为O(n)。

若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行能n-i次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:

冒泡排序的最坏时间复杂度为O(n^2)。

综上,因此冒泡排序总的平均时间复杂度为O(n^2)。

参考资料:百度百科-冒泡排序法



  • 濡備綍鐢ㄥ啋娉℃硶瀵10涓緭鍏鏁版嵁鎺掑簭?
    绛旓細閲囩敤鍐掓场娉闄嶅簭鎺掑垪10涓緭鍏鏁版嵁鐨勭▼搴忓涓嬶細鍏堝畾涔変竴涓暱搴︿负10鐨勬暟缁刟[]锛10涓暟鎹敱閿洏杈撳叆锛屼粠绗竴涓暟寮濮嬶紝涓や袱涓缁勮繘琛屽垽鏂紝鍥犱负瑕佹眰鏄檷搴忔帓鍒楋紝鍥犳灏嗕袱涓暟涓皬鐨勫悜鍚庣Щ鍔紝姣忎釜鏁拌姣旇緝鐨勬鏁颁负9-鏁扮殑涓嬫爣銆傛瘮杈冨畬鎴愬悗灏嗘暟缁勪緷娆¤緭鍑恒杈撳叆10涓鏁版嵁锛岀▼搴忚繍琛岀粨鏋滐細...
  • ...瑕佹眰浠庨敭鐩杈撳叆10涓鏁存暟,鐒跺悗閲囩敤鍐掓场鎺掑簭娉,鎸夐檷搴忔帓搴忋 (鐢ㄥ啋 ...
    绛旓細瑕佺紪鍐欎竴涓▼搴忥紝瀹炵幇浠庨敭鐩杈撳叆10涓鏁存暟骞閲囩敤鍐掓场鎺掑簭娉杩涜闄嶅簭鎺掑垪锛岀▼搴忔楠ゅ涓嬶細棣栧厛锛屽垱寤轰竴涓暱搴︿负10鐨勬暣鏁版暟缁刟[]銆傜敤鎴烽氳繃閿洏杈撳叆杩10涓垵濮嬫暟鍊笺傛帓搴忚繃绋嬩粠绗竴涓厓绱犲紑濮嬶紝姣忔姣旇緝鐩搁偦鐨勪袱涓暟锛屽鏋滃綋鍓嶇殑鏁板皬浜庡悗涓涓暟锛屽氨杩涜浜ゆ崲锛屽洜涓虹洰鏍囨槸闄嶅簭鎺掑垪銆傚浜庢瘡涓涓綅缃殑鏁帮紝闇瑕...
  • 鐢ㄥ啋娉℃帓搴忔硶瀵硅緭鍏ョ殑10涓暟杩涜鍗囧簭鎺掑簭 骞跺瓨鍏ユ暟缁勪腑
    绛旓細define elemType int /*鍏冪礌绫诲瀷*//* 鍐掓场鎺掑簭 */ /* 1. 浠庡綋鍓嶅厓绱犺捣锛屽悜鍚庝緷娆℃瘮杈冩瘡涓瀵圭浉閭诲厓绱狅紝鑻ラ嗗簭鍒欎氦鎹 */ /* 2. 瀵规墍鏈夊厓绱犲潎閲嶅浠ヤ笂姝ラ锛岀洿鑷虫渶鍚庝竴涓厓绱 */ /* elemType arr[]: 鎺掑簭鐩爣鏁扮粍; int len: 鍏冪礌涓暟 */ void bubbleSort (elemType arr[], int len) { ...
  • ...瑕佹眰浠庨敭鐩杈撳叆10涓鏁存暟,鐒跺悗閲囩敤鍐掓场鎺掑簭娉,鎸夐檷搴忔帓搴忋 (鐢ㄥ啋 ...
    绛旓細1. 瀵圭涓瀵瑰厓绱犺繘琛屾瘮杈冿紝濡傛灉绗竴涓暟灏忥紝浜ゆ崲浣嶇疆銆2. 鎺ョ潃姣旇緝绗簩瀵癸紝浠ユ绫绘帹锛岀洿鍒扮涔濆銆3. 绗竴娆″惊鐜粨鏉熷悗锛屾渶澶х殑鏁板皢浣嶄簬鏁扮粍鏈熬銆4. 閲嶅杩欎釜杩囩▼锛屾瘡娆″彧姣旇緝鍓峮-1涓暟锛岀洿鑷虫暣涓暟缁勬帓搴忓畬鎴愩鍐掓场鎺掑簭绠楁硶鐨勫熀鏈濇兂鏄氳繃涓嶆柇浜ゆ崲鐩搁偦鐨勪笉姝g‘浣嶇疆涓婄殑鍏冪礌锛岄愭鎶婅緝澶х殑鏁...
  • 鐢–璇█,闅忔満杈撳叆10涓鏁存暟,鐢ㄥ啋娉℃帓搴忔硶瀵杩欎簺鏁存暟杩涜浠庡皬鍒板ぇ鎺掑簭...
    绛旓細int b[10]={9,10,11,12,1,2,3,4,0,1};int c[10]={1,2,3,4,13,14,15,16,2,3};int i;printf("璇杈撳叆寰鎺掑簭鐨10涓暟锛");for(i=0;i<10;i++){ scanf("%d",&a[i]);} fun(a);printf("\n鎺掑簭鍚庣殑鏁板垪濡備笅锛歕n");for(i=0;i<10;i++){ printf("%2d ",a[i...
  • 濡備綍鐢ㄥ啋娉℃硶瀵10涓暟浠庡ぇ鍒板皬鎺掑簭?
    绛旓細鐢ㄥ啋娉℃硶瀵10涓暟浠庡ぇ鍒板皬鎺掑簭濡備笅锛歞ef bubble_sort(nums):for i in range(len(nums))锛歠or j in range(len(nums)-1):if nums[j]<nums[j+1]:nums[j],nums[j+1]=nums[j+1],nums[j]return numsnums=[34,2,10,-9,89,76,17,-23,55,48]#鍙互鏇挎崲涓轰换浣10涓暟鐨勫垪sorted_nums...
  • C璇█浠庨敭鐩杈撳叆10涓暟,浣跨敤鍐掓场娉曞杩10涓暟杩涜鎺掑簭銆傝姹備娇鐢ㄦ寚閽...
    绛旓細if锛坅锛籮锛斤紴a锛籮锛1锛斤級锛忥紡鐢卞皬鍒板ぇ鎺掑簭 锝 temp锛漚锛籮锛斤紱a锛籮锛斤紳a锛籮锛1锛斤紱a锛籮锛1锛斤紳temp锛沠lag锛1锛涳紡锛忚嫢杩涜浜嗘瘮杈冿紝鍒欏皢flag缃1 锝 锝 锝 void main锛堬級锝 int a锛10锛斤紝i锛沺rintf锛堬紓pleaseinput10numbers锛氾技n锛傦級锛沠or锛坕锛0锛沬锛10锛沬锛嬶紜锛塻canf锛堬紓锛卍锛傦紝...
  • 鐢ㄥ啋娉℃帓搴忔硶瀵硅緭鍏ョ殑10涓暟杩涜鍗囧簭鎺掑簭 骞跺瓨鍏ユ暟缁勪腑
    绛旓細1銆佹墦寮sublime text 3锛岀偣鍑诲乏涓婃柟鐨勨滄枃浠垛濓紝閫夋嫨鈥滄柊寤烘枃浠垛濓紝鏂板缓涓涓悗缂鍚嶄负.html鐨勬枃浠讹紝骞跺懡鍚嶆爣棰樸2銆佸湪Body涓坊鍔犱竴涓畝鍗曠殑input鎸夐挳锛屾坊鍔犱竴涓偣鍑讳簨浠秏ymaopao锛岀敤鏉ュ湪娴忚鍣ㄤ腑鏌ョ湅鏁堟灉銆3銆佸畾涔変袱涓彉閲廼锛宩銆備娇鐢ㄤ袱涓猣or寰幆宓屽閬嶅巻鏁扮粍锛岀涓涓猧浣滅敤涓哄惊鐜鏁帮紝绗簩涓猨浣滅敤鏄...
  • C璇█:閲囩敤鍐掓场鎺掑簭鏂规硶,瀵10涓暟鎸夌敱灏忓埌澶х殑鐨勯『搴忔帓搴
    绛旓細浠g爜濡備笅锛堝10涓鏁存暟杩涜鍗囧簭鎺掑簭锛夛細include<stdio.h> int main(){ int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};//鎺掑簭 for(i=1;i<10;i++)//澶栧惊鐜帶鍒舵帓搴忚稛鏁帮紝n涓暟鎺抧-1瓒 { for(j=0;j<10-1;j++)//鍐呭惊鐜瘡瓒熸瘮杈冪殑娆℃暟锛岀j瓒熸瘮杈僴-i娆 { if(a[j]>a...
  • 鐢ㄥ啋娉℃硶瀵10涓暟鐢卞皬鍒板ぇ鎺掑簭鏄粈涔?
    绛旓細鍐掓场娉曞10涓暟鐢卞皬鍒板ぇ鎺掑簭锛歛 = rand(1,10);%闅忔満鐢熸垚涓缁勬暟 a%鏈帓搴忓墠鍘熷鏁版嵁 n = 10;%鏁扮粍闀垮害 for j = 1: n-1 for i= 1:n-1 if a(i)>a(i+1)c = a(i);a(i) = a(i+1);a(i+1) = c;end end end a %鎺掑簭鍚庢暟缁勬樉绀恒鍐掓场鎺掑簭绠楁硶鐨勫師鐞嗗涓嬶細姣旇緝鐩搁偦鐨...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网