在Javascript中搜索和冒泡排序数组

时间:2011-10-28 14:10:01

标签: javascript algorithm sorting

好吧,所以我真的在这个实验室遇到麻烦。 这是问题所在:

初始化:使用0到100之间的整数值随机初始化大小为200的列表。 第1部分:搜索 您将实现一个函数,该函数在列表中搜索值的出现。它不应该依赖于预先排序的列表。

搜索 部分规范评论 INPUT:list,value初始化列表 计算:

Loop over all elements in list.
    If current element equals value, store as index.
If value not found, ensure index is -1.

RETURN:索引-1,如果找不到值

Prompt the user once for an element (an integer from 0 to 100) to search for.
Call your search function with the number to search for and the list.
Display whether the number was found, and if found, a location where it can be found within the list.

第2部分:排序 您将实现一个按升序(0,1,...)顺序对列表进行排序的函数。您不能使用JavaScript的sort()方法。 有许多方法可以对列表进行排序,您可以实现任何您认为合适的方法,只要它按升序对列表进行排序即可。下面介绍冒泡排序,这是最直接的排序方法之一。

排序 部分规范评论 INPUT:list初始化列表 其他变量:交换 n表示是否发生了交换。 在列表中搜索多远。 计算:

Set n to size of list - 1.
Set swap to FALSE.
Loop over element 0 through element n in the list.
    If current element > next element
        Swap current element and next element.
        Set swap to TRUE.
If swap is TRUE, repeat from step 2. n -= 1.
If swap is FALSE, return the now sorted list.

Gradually sorts a list.

第n项正确放置。 返回:列表

Call your sort function for your list. You are not permitted to call Javascript's sort() method.
Display the (sorted) list.

我不是要你做我的作业,但是请你指点我正确的方向吗?我想出了如何进行冒泡排序,但搜索部分是我最常遇到的问题。

1 个答案:

答案 0 :(得分:2)

function search(array, value)
{
    for (var i = 0; i < array.length; i++)
        if (array[i] === value)
            return i;
    return -1;
}

对于冒泡排序实施,请阅读this

此外,您可以使用此解决方案:

function search(array, value)
{
    return array.indexOf(value);
}