Skip to content

Instantly share code, notes, and snippets.

View coderodde's full-sized avatar

Rodion Efremov coderodde

View GitHub Profile
@coderodde
coderodde / main.cppp
Last active September 9, 2024 14:09
PPC sorting algorithm research attempt.
#include <algorithm>
#include <chrono>
#include <cstring>
#include <iostream>
#include <limits.h>
#include <math.h>
#include <random>
#include <time.h>
#include <limits>
#include <string.h>
@coderodde
coderodde / IncreasingEntropyOfFingerList.java
Last active September 5, 2024 05:58
IncreasingEntropyOfFingerList.java
package fi.helsinki.coderodde.util;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class IncreasingEntropyOfFingerList {
public static void main(String[] args) {
@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;