Skip to content

Instantly share code, notes, and snippets.

View coderodde's full-sized avatar

Rodion Efremov coderodde

View GitHub Profile
@coderodde
coderodde / so.cc
Last active September 3, 2024 06:01
A sorting task for quicksort in PPC course.
#include <iostream>
#include <algorithm>
#include <chrono>
#include <omp.h>
#include <pthread.h>
#define N 50000000
using std::swap;
using std::cout;
@coderodde
coderodde / Quicksort.java
Last active August 31, 2024 15:42
Quicksort in Java - parallel and sequential.
package com.github.coderodde.util;
import java.util.Arrays;
import java.util.Random;
public final class Quicksort {
private static final int MIN_PARALLEL_RANGE = 2 << 16;
private static final class SortingThread extends Thread {
@coderodde
coderodde / FingerArrangementAccessWork.java
Last active September 3, 2024 12:39
FingerArrangementAccessWork.java - Research program for finding out whether middle finger optimization pays off on list access.
package fi.helsinki.rodionef.msc.research;
public class FignerArrangementAccessWork {
public static void main(String[] args) {
for (int listSize = 10; listSize <= 100; listSize++) {
double bestAccessWork = Double.POSITIVE_INFINITY;
int bestFingerIndex = 0;
@coderodde
coderodde / FingerOptimization.java
Last active August 1, 2024 10:08
Finding out whether rewinding to the middle pays off.
import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class FingerOptimization {
public static void main(String[] args) {
boolean flagDebugOutput = false;
@coderodde
coderodde / MiddleFingerResearch.java
Created July 30, 2024 05:28
A small Java program for computing minimizing m for the finger rewinding.
package com.yourcompany.fun.middlefingerresearch;
public class MiddleFingerResearch {
public static void main(String[] args) {
final int n = 4;
for (int a = 10; a <= 20; a++) {
for (int b = 30; b <= 40; b++) {
@coderodde
coderodde / ConnectFourSearchEngineComparison.java
Created June 9, 2024 09:14
A small Java program for comparing two connect four game AI algorithms.
package com.github.coderodde.game.connect4.benchmark;
import com.github.coderodde.game.connect4.ConnectFourBoard;
import com.github.coderodde.game.connect4.ConnectFourHeuristicFunction;
import com.github.coderodde.game.zerosum.impl.AlphaBetaPruningSearchEngine;
import com.github.coderodde.game.zerosum.impl.ConnectFourAlphaBetaPruningSearchEngine;
public class ConnectFourSearchEngineComparison {
private static final int DEPTH = 9;
package fi.helsinki.cs.rodionef.msc;
import com.github.coderodde.util.IndexedLinkedList;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentSkipListMap;
public class IndexListVsSkipListComparison {
private static long durationTm = 0L;
package fi.helsinki.cs.rodionef;
import com.github.coderodde.util.SkipListMap;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentSkipListMap;
@coderodde
coderodde / NiuvaPäiväkirja.txt
Last active July 10, 2024 04:31
Tarinoitani Niuvannimen sairaalasta
2024-5-13 (ma):
1. 17 päivää sitten luvattu käynti kaupungilla kariutui tunti/pari ennen sovittua lähtöä. Syy: saatava hoitaja oli sairastunut. Henkilökunta voivotteli ja pesi kätensä: sijaista ei löytynyt edes nk. poolista.
2024-5-15 (ke):
1. Hoitaja Ari kutsui tarkoituksella minua nimellä, joka ei ole minun.
2024-5-19 (su):
1. Kysyin hoitajaa Timoa antamaan minulle puhelimeni ja kannettavani latauskaapista, johon hän vastasi, että "kestää hetken". Hänyellä oli siviilipuhelin kädessään, ja hän kirjoitti noin 4 minuuttia sillä ennen kuin suostui avaamaan latauskaapin.
2024, kesäkuun loppu:
@coderodde
coderodde / SnailMatrixGenerator.py
Last active April 22, 2024 03:59
A class for generating snail matrices.
type Matrix = list[list[int]]
"""
This class is responsible for generating snail matrices of dimensions n * n.
"""
class SnailMatrixGenerator:
"""
Constructs this generator.
"""