可以用一個輔助數組進行隨機排序,方法如下:
創新互聯建站專注于企業成都全網營銷推廣、網站重做改版、友好網站定制設計、自適應品牌網站建設、H5頁面制作、成都商城網站開發、集團公司官網建設、外貿網站制作、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為友好等各大城市提供網站開發制作服務。
1 獲取要排序的數組長度L。
2 定義整型的輔助數組,長度為L。
3 生成L個隨機整型數字,存與輔助數組中,這樣要排序數組和輔助數組就是一一對應的了。
4 對輔助數組排序,排序過程中,當改變輔助數組中數字的位置時,同步改變要隨機排序的原數組中對應的元素位置。比如為排序交換輔助數組的第三個和第五個元素,那么就要同時交換原數組中的第三個和第五個元素。
5 當輔助數組排序完成后,原數組中的值就是隨機順序了。
6 刪除輔助數組。
#include
#include
#include
intmain()
{
inti,j,n,k,t,a[100];
srand((unsigned)time(NULL));
p
利用rand()函數產生隨機數字,rand()%n產生小于n的隨機數,然后交換。
運行的結果:
#include
#include
intmain()
{
intnbs
利用rand()函數產生隨機數字,rand()%n產生小于n的隨機數,然后交換。
擴展資料
C語言排序法
在一層循環找出最小數的下標,該下標用min保存,直到比較完整個數組,即可找到最小的數,然后將該數放入數組的第一位。
這樣只能排好一個元素,于是需要再嵌套一層外層循環即可排好所有元素。第二次循環就不用再比較第一個元素了,因為第一個元素已經排好,依次類推,每一次循環就會排好一個,進行n-1次循環即可排好所有元素。
利用rand()函數產生隨機數字,rand()%n產生小于n的隨機數, 然后交換。
下面是我寫的程序:
#include stdio.h#include stdlib.hint main(){ int a[1000], n, i, j, p, q, t; while(1) { printf("\n\n請輸入一維數組的維數,0結束 n = "); scanf("%d", n); if(n==0) break; printf("請輸入一維數組中的數據:\n"); for(i=0; in; i++) scanf("%d", a[i]); j=10; while(j--)//隨機交換10次 { p=rand()%n;//產生兩個隨機數 q=rand()%n; t=a[p];//交換 a[p]=a[q]; a[q]=t; } printf("\n隨機交換后數組的元素為:\n"); for(i=0; in; i++) printf("%d ", a[i]); }}
分享名稱:c語言隨機排序函數 C語言隨機排序
轉載來于:http://m.kartarina.com/article14/hgchde.html
成都網站建設公司_創新互聯,為您提供軟件開發、面包屑導航、微信公眾號、響應式網站、關鍵詞優化、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯