我有一个这样的数组:
arr = []
arr[0] = "ab"
arr[1] = "abcdefgh"
arr[2] = "abcd"
排序后,输出数组应为:
arr[0] = "abcdefgh"
arr[1] = "abcd"
arr[2] = "ab"
我希望每个元素的长度按descending
顺序排列。
发布于 2012-05-17 14:29:02
发布于 2020-04-24 01:07:56
#created a sorting function to sort by length of elements of list
def sort_len(a):
num = len(a)
d = {}
i = 0
while i<num:
d[i] = len(a[i])
i += 1
b = list(d.values())
b.sort()
c = []
for i in b:
for j in range(num):
if j in list(d.keys()):
if d[j] == i:
c.append(a[j])
d.pop(j)
return c
发布于 2020-10-06 13:07:36
如果希望保留与原始数组长度相同的元素顺序,请使用冒泡排序。
Input = ["ab","cdc","abcd","de"];
Output = ["ab","cd","cdc","abcd"]
功能:
function bubbleSort(strArray){
const arrayLength = Object.keys(strArray).length;
var swapp;
var newLen = arrayLength-1;
var sortedStrArrByLenght=strArray;
do {
swapp = false;
for (var i=0; i < newLen; i++)
{
if (sortedStrArrByLenght[i].length > sortedStrArrByLenght[i+1].length)
{
var temp = sortedStrArrByLenght[i];
sortedStrArrByLenght[i] = sortedStrArrByLenght[i+1];
sortedStrArrByLenght[i+1] = temp;
swapp = true;
}
}
newLen--;
} while (swap);
return sortedStrArrByLenght;
}
https://stackoverflow.com/questions/10630766
复制相似问题