Skip to content

Instantly share code, notes, and snippets.

View serge-medvedev's full-sized avatar

Serge Medvedev serge-medvedev

  • Samsung R&D Institute Ukraine
  • Kyiv, Ukraine
View GitHub Profile
@serge-medvedev
serge-medvedev / PKGBUILD
Created June 8, 2022 17:31
Ever Surf PKGBUILD
pkgname=ever-surf
pkgver=8.2.1
pkgrel=1
pkgdesc="Ever Surf. Blockchain Communicator: data browser, crypto wallet and private chat."
arch=('x86_64')
url="https://ever.surf/download/"
license=('unknown')
checkdepends=('curl' 'coreutils')
source=("https://distribution.services.ever.surf/download/flavor/default/${pkgver}-release/linux_64/${pkgname}_${pkgver}_amd64.deb")
sha256sums=('16414f1161daf8cb79d00297b59cf71d4b9489b00997cb5297fdfd1f27cd6860')
#!/bin/bash
RESTORE_DB=${RESTORE_DB:-false}
jq ".restore_db = ${RESTORE_DB}" /mnt/node/config.json > /tmp/config.json
mv /tmp/config.json /mnt/node/config.json
@serge-medvedev
serge-medvedev / skiplist.cpp
Last active January 18, 2020 20:25
Skip List
#include <iostream>
#include <string>
#include <sstream>
#include <ostream>
#include <cassert>
using namespace std;
static const int MultiplyDeBruijnBitPosition[] =
{
/*
* Open addressing, linear probing.
*/
template < typename Key, typename Value, class Hash >
class hashtable
{
public:
using capacity_t = uint64_t;
using item_t = struct item
@serge-medvedev
serge-medvedev / dijkstra.cpp
Created April 11, 2018 07:32
Dijkstra's Shortest Path
int findNearest( int distances[], bool spt_flags[] )
{
auto min_value = numeric_limits< int >::max(), min_index = 0;
for ( auto v = 0; v < N; v++ )
{
auto not_in_spt = ( ! spt_flags[ v ] );
auto closer = ( distances[ v ] < min_value );
if ( not_in_spt && closer )
@serge-medvedev
serge-medvedev / bsearch.cpp
Last active April 9, 2018 19:34
Binary Search
/*
* Recursive implementation
*/
int bsearch(int arr[], int low, int high, int x)
{
if (high >= low)
{
int mid = low + (high - low)/2;
@serge-medvedev
serge-medvedev / djb2.cpp
Created April 8, 2018 08:46
String Hash
unsigned long hash(unsigned char *str)
{
unsigned long hash = 5381;
int c;
while (c = *str++)
hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
return hash;
}
int64_t bfs( int64_t value )
{
auto adjacency_lists = new uint8_t * [ MAXN ];
auto adjacency_lists_lengths = new uint8_t [ MAXN ];
// ...
QueueT< int64_t > q( MAXN );
auto visited = new bool [ MAXN ];
auto distances = new int64_t [ MAXN ];
template < typename T >
class QueueT
{
public:
QueueT( int64_t max_size )
: _max_size( max_size )
, _size( 0 )
, _front( 0 )
, _rear( -1 )
{
uint64_t ** adj_lists = nullptr;
bool * visited = nullptr;
uint64_t * adj_sizes = nullptr;
bool is_visited( uint64_t id )
{
return visited[ id ];
}
void set_visited( uint64_t id )