在Windows Javascript应用程序中未获取正确的排序数组
在Windows应用商店应用程序(Javascript)中实现气泡排序算法时,我无法获得正确的排序输出。下面是Javascript的源代码:-在Windows Javascript应用程序中未获取正确的排序数组,javascript,sorting,windows-store-apps,Javascript,Sorting,Windows Store Apps,在Windows应用商店应用程序(Javascript)中实现气泡排序算法时,我无法获得正确的排序输出。下面是Javascript的源代码:- function BubbleSort() { var numlist = NumList.value; var swap,flag=1,i=0; var ar = numlist.split(","); Val.value = ar[i]; while(flag!=0) { for (va
function BubbleSort()
{
var numlist = NumList.value;
var swap,flag=1,i=0;
var ar = numlist.split(",");
Val.value = ar[i];
while(flag!=0)
{
for (var j = 0; j < ar.length; j++)
{
flag = 0;
if(ar[j]>ar[j+1])
{
swap = ar[j + 1];
ar[j + 1] = ar[j];
ar[j] = swap;
flag++;
}
}
}
IS.value = ar.toString();
}
函数BubbleSort()
{
var numlist=numlist.value;
var掉期,标志=1,i=0;
var ar=numlist.split(“,”);
Val.value=ar[i];
while(标志!=0)
{
对于(var j=0;jar[j+1])
{
掉期=应收账款[j+1];
ar[j+1]=ar[j];
ar[j]=掉期;
flag++;
}
}
}
IS.value=ar.toString();
}
输入:-“10,4,3,2,1,5,7,6,9”
输出:-“10,3,2,1,4,5,6,7,9”
我正在使用Visual Studio 2013 Update 3制作应用程序。你能告诉我怎么了吗?这样试试(根据需要调整):
函数bubbleSort(v,desc)
{
var ar=v.split(',),i=v.length;
而((i-=1,i))
{
对于(var j=0;j[10,9,7,6,5,4,3,2,1]
默认排序算法有什么问题?我正在尝试制作一个教育应用程序,因此这也是必需的。是否有默认的冒泡排序方法?o.OYea…我会阅读,但你能看看我的代码并告诉我我这里做错了什么吗?谢谢你的回答,但你能解释一下你所说的数字比较是什么意思吗您在If语句中所做的操作是什么?我使用了断点,我的代码甚至没有进入If代码块?ar[j]和ar[j+1]之前的+
符号将值转换为数字
,因此现在它比较两个数字。字符串比较将'10'
置于'2'
之前,并返回[1,10,2,3,4,5,6,7,9]
Aah感谢您的快速响应。它现在正在工作。标记为答案。也感谢您的解释^ ^ Hi@PranavJituri,很高兴我能帮助您。调整答案以启用降序排序。
function bubbleSort(v, desc)
{
var ar = v.split(','), i = v.length;
while((i-=1,i))
{
for (var j = 0; j < ar.length; j++)
{
if(desc ? +ar[j]<+ar[j+1] : +ar[j]>+ar[j+1]) //<= numeric comparison
{
var swap = ar[j];
ar[j] = ar[j+1];
ar[j+1] = swap;
}
}
}
return ar.join();
}
// usage asc en desc:
bubbleSort('10,4,3,2,1,5,7,6,9'); //=> [1,2,3,4,5,6,7,9,10]
bubbleSort('10,4,3,2,1,5,7,6,9', true); //=> [10,9,7,6,5,4,3,2,1]