国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

排序算法之選擇排序

2019-11-11 04:04:15
字體:
來源:轉載
供稿:網友

選擇排序核心思想 跟 冒泡排序差不多。

冒泡排序做得比較多無用功,而選擇排序相對較少。

選擇排序代碼如下:

#include<stdio.h>void swap(int *a,int *b){	int t;	t = *a;	*a = *b;	*b = t;}int main(){	int a[]={5,2,3,1,4};	int i,j,min,len;		len = sizeof(a)/sizeof(int);		/*-----主要語句-----*/	for(i=0;i<len;i++)	{		min = i;		for(j=i+1;j<len;j++)			if(a[min]>a[j])				min = j;				if(min!=i)			swap(&a[i],&a[min]);	}	/*---------------*/ 		for(i=0;i<len;i++)		PRintf("%d,",a[i]);		return 0;} 打印結果:1,2,3,4,5

由上圖可知道,選擇排序在第二層for循環中,是用 min 來記錄下較小數值的下標,一輪循環過后,min自然是最小的數值的下標,然后再做數值交換。

所以在二層for循環,一輪循環,才會做一次數值交換,而不像冒泡排序,只要是檢測到比最小的還小的數值就馬上做數值交換,而不等到整個循環結束(你怎么知道下一個會不會更小呢?)

因此冒泡排序是十分慢的算法


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南川市| 彰化县| 铜川市| 孝义市| 鄂尔多斯市| 桂阳县| 西平县| 沭阳县| 铜鼓县| 太原市| 凤山市| 忻州市| 文山县| 双峰县| 玛曲县| 绥中县| 托克托县| 台北市| 廉江市| 长乐市| 旬阳县| 梁平县| 怀远县| 青冈县| 独山县| 赣州市| 高雄县| 甘洛县| 阿荣旗| 九龙城区| 元氏县| 涞源县| 甘泉县| 佛坪县| 尉氏县| 临猗县| 松原市| 穆棱市| 龙口市| 兴义市| 卫辉市|