1、int *a = (int *)malloc(sizeof(int) * n); //動(dòng)態(tài)分配數(shù)組空間 ,有幾個(gè)元素,n就是幾。
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站10多年經(jīng)驗(yàn)成就非凡,專業(yè)從事成都網(wǎng)站建設(shè)、做網(wǎng)站,成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)頁制作,軟文推廣,廣告投放等。10多年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:028-86922220,我們期待您的來電!
2、以下是輸入10個(gè)整數(shù)按從大到小排序后再插入一個(gè)整數(shù)的程序。
3、②第1趟排序 在無序區(qū)R[.n]中選出關(guān)鍵字最小的記錄R[k],將它與無序區(qū)的第1個(gè)記錄R[1]交換,使R[.1]和R[.n]分別變?yōu)橛涗泜€(gè)數(shù)增加1個(gè)的新有序區(qū)和記錄個(gè)數(shù)減少1個(gè)的新無序區(qū)。
把 if(p!=i){ q=a[p];a[p]=a[i];a[i]=q;} 這一段放到前面的p=m;后地}后面。
//希望對樓主有小小的幫助。。//排序的算法是二分法,N的對數(shù)時(shí)間復(fù)雜度。。//如果有疑問,我們可以再探討。。
樓上兩位好像都有問題,這個(gè)函數(shù)傳的是數(shù)組首地址,所以不需要 返回值 ,for循環(huán) 是需要 大括號 的。
程序改了很多,為什么?數(shù)組a 定義為局部變量,你傳遞了卻沒返回,這樣使用不了,我改為了全局變量,這樣不需要傳遞,直接使用就行。函數(shù)傳遞的另一個(gè)變量N 不需要傳遞,因?yàn)楸旧鞱就是個(gè)全局變量,直接使用就行。
可以用一個(gè)輔助數(shù)組進(jìn)行隨機(jī)排序,方法如下:1 獲取要排序的數(shù)組長度L。2 定義整型的輔助數(shù)組,長度為L。3 生成L個(gè)隨機(jī)整型數(shù)字,存與輔助數(shù)組中,這樣要排序數(shù)組和輔助數(shù)組就是一一對應(yīng)的了。
第一個(gè)for循環(huán):利用數(shù)組循環(huán)輸入4個(gè)變量。第二個(gè)for循環(huán):該循環(huán)的意思是如果a[0]a[1]的話,兩個(gè)變量的值交換,利用循環(huán)依次比較。要注意的是i3,因?yàn)槠渲杏衖+1,i最大取到2,也就是i+1最大取到3才正確。
常用的c語言排序算法主要有三種即冒泡法排序、選擇法排序、插入法排序。冒泡排序冒泡排序:是從第一個(gè)數(shù)開始,依次往后比較,在滿足判斷條件下進(jìn)行交換。