PINE LIBRARY

BinaryInsertionSort

Library "BinaryInsertionSort"
Library containing functions which can help create sorted array based on binary insertion sort.
This sorting will be quicker than array.sort function if the sorting needs to be done on every bar and the size of the array is comparatively big.
This is created with the intention of using this to solve a bigger problem posted by @lejmer. Wish me luck!!

binary_insertion_sort(sortedArray, item, order)
  binary insertion sort - inserts item into sorted array while maintaining sort order
  Parameters:
    sortedArray: array<float|int> which is assumed to be sorted in the requested order
    item: float|int item which needs to be inserted into sorted array
    order: Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: int index at which the item is inserted into sorted array

update_sort_indices(sortIndices, newItemIndex)
  adds the sort index of new item added to sorted array and also updates existing sort indices.
  Parameters:
    sortIndices: array<int> containing sort indices of an array.
    newItemIndex: sort index of new item added to sorted array
  Returns: void

get_array_of_series(item, order)
  Converts series into array and sorted array.
  Parameters:
    item: float|int series
    order: Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: [valueArray, sortedArray, sortIndex of last item]

get_sorted_arrays(item, order)
  Converts series into array and sorted array. Also calculates the sort order of the value array
  Parameters:
    item: float|int series
    order: Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: [valueArray, sortedArray, sortIndices]
arrayshewhomustnotbenamedMATHtrendoscope

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House rules.

Disclaimer