二维数组如何排序
本帖最后由 dnvplj 于 2019-3-7 08:27 编辑请问各位朋友,二维数组如何排序,见下图和代码。
#include <Array.au3>
Local $Array = _Twoarray()
_Aftersorting($Array)
;原数组
Func _Twoarray()
Local $Array = [ _
, _
, _
, _
, _
]
Return $Array
EndFunc ;==>_Twoarray
;排序后
Func _Aftersorting($Array)
_ArrayDisplay($Array, "$Array")
EndFunc ;==>_Aftersorting
#include <Array.au3>
Local $Array = _Twoarray()
_ArrayDisplay($Array, "排序前")
_Aftersorting($Array)
_ArrayDisplay($Array, "排序后")
;原数组
Func _Twoarray()
Local $Array = [ _
, _
, _
, _
, _
]
Return $Array
EndFunc ;==>_Twoarray
;排序
Func _Aftersorting(ByRef $Array)
If Not IsArray($Array) Then Return SetError(1)
Local $aRet
For $i = 0 To UBound($Array) - 1
For $j = 0 To UBound($Array, 2) - 1
ReDim $aRet
$aRet = $Array[$i][$j]
Next
Next
Local $i_ub = UBound($aRet)
For $i_count = 0 To $i_ub - 2
Local $i_se = $i_count
For $x_count = $i_count To $i_ub - 1
If Number($aRet[$i_se]) > Number($aRet[$x_count]) Then $i_se = $x_count
Next
Local $i_hld = $aRet[$i_count]
$aRet[$i_count] = $aRet[$i_se]
$aRet[$i_se] = $i_hld
Next
$i_count = 0
For $i = 0 To UBound($Array,2) - 1
For $j = 0 To UBound($Array) - 1
$Array[$j][$i] = $aRet[$i_count]
$i_count += 1
Next
Next
ReDim $aRet
EndFunc ;==>_Aftersorting
zghwelcome 发表于 2019-3-7 18:09
谢谢朋友,问题解决了。 厉害,学习啦
页:
[1]