• JavaScript算法测试函数
    • 名词解释:
      • 用一个for遍历数组排序

    JavaScript算法测试函数

    • SetData()函数生成了存储在数组中的随机数字。Math类的random()函数会生成[0,1)区间内的随机数字。换句话说,random()函数生成的随机数字大于等于0,但不会等于1。最后在用Math类的floor()函数确定最终结果。
    • 如下这个公式可以成功生成1~100的随机数字集合。
    1. function CArray(numElements) {
    2. this.dataStore = [];
    3. this.pos = 0;
    4. this.numElements = numElements;
    5. this.insert = insert;
    6. this.toString = toString;
    7. this.clear = clear;
    8. this.setData = setData;
    9. this.swap = swap;
    10. for (var i = 0; i < numElements; ++i) {
    11. this.dataStore[i] = i;
    12. }
    13. }
    14. //数据输出
    15. function setData() {
    16. for (var i = 0; i
    17. <
    18. this.numElements; ++i) {
    19. this.dataStore[i] = Math.floor(Math.random() * (this.numElements + 1));//生成随机数组
    20. }
    21. }
    22. function clear() {
    23. for (var i = 0; i
    24. <
    25. this.dataStore.length; ++i) {
    26. this.dataStore[i] = 0;
    27. }
    28. }
    29. function insert(element) {
    30. this.dataStore[this.pos++] = element;
    31. }
    32. function toString() {
    33. var restr = "";
    34. for (var i = 0; i < this.dataStore.length; ++i) {
    35. restr += this.dataStore[i] + " ";
    36. if (i > 0 & i % 10 == 0) {
    37. restr += "\n";
    38. }
    39. }
    40. return restr;
    41. }
    42. function swap(arr,index1,index2) {
    43. var temp = arr[index1];
    44. arr[index1] = arr[index2];
    45. arr[index2] = temp;
    46. }
    47. //测试
    48. var numElements = 100;
    49. var myNums = new CArray(numElements);
    50. myNums.setData();
    51. console.log(myNums.toString());

    名词解释:

    • n: 数据规模
    • k:“桶”的个数
    • In-place: 占用常数内存,不占用额外内存
    • Out-place: 占用额外内存
    • 稳定性:排序后2个相等键值的顺序和排序之前它们的顺序相同
    用一个for遍历数组排序
    1. var a = [12,13,65,54,86,21,37,1,95,4];
    2. var l = a.length;
    3. console.log(a);
    4. for (var i = 0; i < l; i++) {
    5. if (a[i] > a[i + 1]) {
    6. var temp = a[i];
    7. a[i] = a[i + 1];
    8. a[i + 1] = temp;
    9. }
    10. if (i == l-1) {
    11. i = -1;
    12. l--;
    13. }
    14. }
    15. console.log(a);