Я написал собственный метод сортировки на месте для целочисленных массивов (Javascript) - сложность времени?Имя метода сортировки? - PullRequest
0 голосов
/ 07 декабря 2018

Я написал простой алгоритм для сортировки массива целых чисел в JS.Я хотел бы знать, что такое Пространственно-временная сложность и является ли это эффективным алгоритмом.Я не смог найти этот метод сортировки в другом месте онлайн (хотя он похож на пузырьковую сортировку).Я понимаю, что JS имеет встроенную функцию сортировки, но я написал это для практики.Пожалуйста, дайте мне знать, что вы думаете:

function arraySort(array){
  var i = 0;

  //helper function to sort backwards
  function leftSort(j){
    if(array[j] < array[j-1]){
      //swap in place
      temp = array[j]
      array[j] = array[j-1]
      array[j-1] = temp
      if(j-1 > 0){
        //call recursively to swap further left
        leftSort(j-1)
      }
    }
  }

  //sort forwards
  while(i < array.length){
    if(array[i] > array[i+1]){
      //swap in place
      var temp = array[i]
      array[i] = array[i+1]
      array[i+1] = temp
      if(i>0){
        //sort swapped value backwards to the left
        leftSort(i)
      }
    }
    i++
  }

  leftSort(i)

  return array
}

1 Ответ

0 голосов
/ 07 декабря 2018

Похоже, что это по сути пузырьковая сортировка с особым порядком выполнения.

Ваш алгоритм перемещает массив вперед и назад (n) * (0.5n) раз -> O (n ^ 2).Пространственная сложность постоянна, так как это сортировка на месте.

...