zhangruxin
級別: 正式會員
![]() |
描述:效果圖
圖片: ![]() 100個32位整形從大到小排序,實時執行時仿真掃描周期5.6ms(在我電腦上) 大概思路,先找到最小值,再把最大值提出來,用最小值覆蓋當前位置的最大值 冒泡排序循環的次數太多 |
---|---|
|
zmrs163
級別: 家園常客
![]() |
其實沒必要提取最小值覆蓋最大值,直接用雙字最小值覆蓋即可,如果數據范圍不能確定,只要取最小值判斷下,只要大于雙字最小值后面就不用判斷了。話說為啥不用自帶的排序指令呢,速度不是更快 |
---|---|
|
zhangruxin
級別: 正式會員
![]() |
沒明白你說的“只要取最小值判斷下,只要大于雙字最小值后面就不用判斷了”是什么意思,SORTTBL指令?只能排32個
|
---|---|
|
zmrs163
級別: 家園常客
![]() |
沒必要每次都取最小值覆蓋,取一次就行。那個指令我看了下確實只能排32個,要是我寫我就用四次然后歸并排序
|
---|---|
|
sjbandmm
級別: 略有小成
![]() |
圖片:
![]() 我這個更簡單一點,從大到小排列,先找到第一個最大數,放到D500,將第一個數據寫0,再找第二個最大的數字,放到D502,再將這個數字清零,直到檢測的最大數據為0,退出循環,我這個模擬周期,只有幾個數的時候是1.6ms左右,最多的數據是2.6ms,比你那個時間要短的多。 |
---|---|
|