今天為嘛總是見(jiàn)到最后這句話……初學(xué)者……冒泡唄,兩個(gè)數(shù)據(jù)都冒。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比黃梅網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式黃梅網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋黃梅地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
tmp]; a[tmp]=a[i]; a[i]=b; } } for(i=0;i10;i++) printf(%3d,a[i]); printf(\n); return 0;}隨機(jī)產(chǎn)生數(shù)組中的元素, 更合理一些。 百科中有各種版本。
//希望對(duì)樓主有小小的幫助。。//排序的算法是二分法,N的對(duì)數(shù)時(shí)間復(fù)雜度。。//如果有疑問(wèn),我們可以再探討。。
選擇排序的算法是由n個(gè)元素的數(shù)組需要進(jìn)行n-1輪的選擇,每一輪選擇,采用打擂臺(tái)的思想,從中選擇最大的元素,然后把最大的元素交換到待排序范圍內(nèi)的首位,然后再進(jìn)行下一輪,直到n-1輪排序結(jié)束就可以了。
首先請(qǐng)問(wèn)是要干什么,數(shù)組作為線性表的一種,大小固定。線性表的另外一種就是鏈表了。先明白各自的優(yōu)缺點(diǎn)。
1、1 待排序數(shù)組首地址 2 數(shù)組中待排序元素?cái)?shù)量 3 各元素的占用空間大小 4 指向函數(shù)的指針,用于確定排序的順序 這個(gè)函數(shù)必須要自己寫(xiě)比較函數(shù),即使要排序的元素是int,float一類的C語(yǔ)言基礎(chǔ)類型。
2、sortFun(a,SIZE_N); //調(diào)用排序函數(shù) for(int j=0;jSIZE_N;j++){ printf(%d\n,a[j]); //輸出數(shù)據(jù) } } 以上就是基本的程序,局部可以優(yōu)化使其更人性化。
3、把 if(p!=i){ q=a[p];a[p]=a[i];a[i]=q;} 這一段放到前面的p=m;后地}后面。
4、程序中有兩處出現(xiàn)*point_1和*point_2,但是兩者含義不同。程序第5行的*point_1和*point_2表示定義兩個(gè)指針變量*point_1和*point_2。它們前面的“*”只是表示該變量是指針變量。
C語(yǔ)言中沒(méi)有預(yù)置的sort函數(shù)。如果在C語(yǔ)言中,遇到有調(diào)用sort函數(shù),就是自定義的一個(gè)函數(shù),功能一般用于排序??梢跃帉?xiě)自己的sort函數(shù)。如下函數(shù)為將整型數(shù)組從小到大排序。
p[i]就是指針p指向的數(shù)組的下標(biāo)為i的元素。
c語(yǔ)言通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)選擇排序法:寫(xiě)一個(gè)簡(jiǎn)單選擇排序法的函數(shù)名,包含參數(shù)。
=tmp) { b=a[tmp]; a[tmp]=a[i]; a[i]=b; } } for(i=0;i10;i++) printf(%3d,a[i]); printf(\n); return 0;}隨機(jī)產(chǎn)生數(shù)組中的元素, 更合理一些。
數(shù)組a 定義為局部變量,你傳遞了卻沒(méi)返回,這樣使用不了,我改為了全局變量,這樣不需要傳遞,直接使用就行。函數(shù)傳遞的另一個(gè)變量N 不需要傳遞,因?yàn)楸旧鞱就是個(gè)全局變量,直接使用就行。