Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (2)
...@@ -16,16 +16,25 @@ namespace AlgorithmLibrary ...@@ -16,16 +16,25 @@ namespace AlgorithmLibrary
r = A.Length - 1; r = A.Length - 1;
} }
return indexPrvku(A, (int)l, (int)r, k, div); return indexPrvku(A, (int)l, (int)r, k, div);
} }
/**
* Binarni vyhledavani prvniho vyskyt prvku
* @param A pole k serazeni
* @param l prvni index, na ktery smim sahnout
* @param r posledni index, na ktery smim sahnout
* @param k hledany prvek
* @param div hodnota delici interval z rozsahu 0.5 az 1
* @return vraci index prvku, pokud nalezne, jinak vraci -1
*/
private static int indexPrvku(int[] A, int l, int r, int k, float div) private static int indexPrvku(int[] A, int l, int r, int k, float div)
{ {
if (l > r) if (l > r)
return -1; return -1;
//int mid = (l + r) / 2;
int interval = r - l; int interval = r - l;
int rozdel = (int)(interval * (1 - div)); int rozdel = (int)(interval * (1 - div));
//divIndex je index prvku, ktery porovnavame s hledanym prvkem
int divIndex = l + rozdel; int divIndex = l + rozdel;
if (A[divIndex] == k) if (A[divIndex] == k)
{ {
...@@ -41,6 +50,7 @@ namespace AlgorithmLibrary ...@@ -41,6 +50,7 @@ namespace AlgorithmLibrary
} }
} }
public static int IndexPrvkuFloat(float[] A, float k, float div, int? l = null, int? r = null) public static int IndexPrvkuFloat(float[] A, float k, float div, int? l = null, int? r = null)
{ {
if (l == null || r == null) if (l == null || r == null)
...@@ -50,7 +60,15 @@ namespace AlgorithmLibrary ...@@ -50,7 +60,15 @@ namespace AlgorithmLibrary
} }
return indexPrvkuFloat(A, (int)l, (int)r, k, div); return indexPrvkuFloat(A, (int)l, (int)r, k, div);
} }
/**
* Binarni vyhledavani s desetinymi hodnotami cisel
* @param A pole k serazeni
* @param l prvni index, na ktery smim sahnout
* @param r posledni index, na ktery smim sahnout
* @param k hledany prvek
* @param div hodnota delici interval z rozsahu 0.5 az 1
* @return vraci index prvku, pokud nalezne, jinak vraci -1
*/
private static int indexPrvkuFloat(float[] A, int l, int r, float k, float div) private static int indexPrvkuFloat(float[] A, int l, int r, float k, float div)
{ {
if (l > r) if (l > r)
...@@ -79,8 +97,15 @@ namespace AlgorithmLibrary ...@@ -79,8 +97,15 @@ namespace AlgorithmLibrary
{ {
return indexPrvkuIterativni(A, k, A.Length - 1, div); return indexPrvkuIterativni(A, k, A.Length - 1, div);
} }
/**
//NEREKURZIVNI !!!!! * Binarni vyhledavani NEREKURZIVNI
* @param A pole k serazeni
* @param l prvni index, na ktery smim sahnout
* @param r posledni index, na ktery smim sahnout
* @param k hledany prvek
* @param div hodnota delici interval z rozsahu 0.5 az 1
* @return vraci index prvku, pokud nalezne, jinak vraci -1
*/
private static int indexPrvkuIterativni(int[] A, int k, int n, float div) private static int indexPrvkuIterativni(int[] A, int k, int n, float div)
{ {
int l = 0, r = n - 1; int l = 0, r = n - 1;
...@@ -106,30 +131,39 @@ namespace AlgorithmLibrary ...@@ -106,30 +131,39 @@ namespace AlgorithmLibrary
} }
static public int NejvetsiPrvekNeVetsiNezK(int[] A, int k, int? l = null, int? r = null) static public int NejvetsiPrvekNeVetsiNezK(int[] A, int k, float div, int? l = null, int? r = null)
{ {
if (l == null || r == null) if (l == null || r == null)
{ {
l = 0; l = 0;
r = A.Length - 1; r = A.Length - 1;
} }
return nejvetsiPrvekNeVetsiNezK(A, (int)l, (int)r, k); return nejvetsiPrvekNeVetsiNezK(A, (int)l, (int)r, k, div);
} }
//UPRAVENA VARIANTA BEZ PRVKU /**
* Binarni vyhledavani, upravena varianta bez prvku
* @param A pole k serazeni
* @param l prvni index, na ktery smim sahnout
* @param r posledni index, na ktery smim sahnout
* @param k hledany prvek
* @param div hodnota delici interval z rozsahu 0.5 az 1
* @return vraci index prvku k, pokud nalezne, jinak vraci nejvetsi prvek ne vetsi nez k
*/
static private bool neniVetsiNezK(int[] A, int x, int k) static private bool neniVetsiNezK(int[] A, int x, int k)
{ {
// neni vetsi nez k, takze je moznym resenim // neni vetsi nez k, takze je moznym resenim
return A[x] <= k; return A[x] <= k;
} }
static private int nejvetsiPrvekNeVetsiNezK(int[] A, int x, int y, int k) static private int nejvetsiPrvekNeVetsiNezK(int[] A, int x, int y, int k, float div)
{ {
int l = x, r = y; int l = x, r = y;
int nejlepsi = -1; int nejlepsi = -1;
while (l <= r) while (l <= r)
{ {
int interval = r - l;
int mid = (l + r) / 2; int rozdel = (int)(interval * (1 - div));
int mid = l + rozdel;
if (neniVetsiNezK(A, mid, k)) if (neniVetsiNezK(A, mid, k))
{ {
nejlepsi = mid; nejlepsi = mid;
......
...@@ -8,17 +8,17 @@ namespace AlgorithmLibrary ...@@ -8,17 +8,17 @@ namespace AlgorithmLibrary
{ {
internal class MatrixSearch internal class MatrixSearch
{ {
static private int index1 = -1; static private int index1 = -1; //pozice radku
static private int index2 = -1; static private int index2 = -1; //pozice sloupce
static private int counter = 0; static private int counter = 0; //uruje pozici v poli indexy
static private int[] indexy = new int[4_000_000]; static private int[] indexy = new int[4_000_000]; //pole pro ulozeni indexu v pripade vice vyskytu
//binarni vyhledavni - pomocna funkce algoritmu binaryMatice
private static int indexPrvku(int[] A, int l, int r, int k, float div) private static int indexPrvku(int[] A, int l, int r, int k, float div)
{ {
if (l > r) if (l > r)
return -1; return -1;
//int mid = (l + r) / 2;
int interval = r - l; int interval = r - l;
int rozdel = (int)(interval * (1 - div)); int rozdel = (int)(interval * (1 - div));
int divIndex = l + rozdel; int divIndex = l + rozdel;
...@@ -39,8 +39,11 @@ namespace AlgorithmLibrary ...@@ -39,8 +39,11 @@ namespace AlgorithmLibrary
static private bool neniVetsiNezK(int[] A, int x, int k) static private bool neniVetsiNezK(int[] A, int x, int k)
{ {
// neni vetsi nez k, takze je moznym resenim // neni vetsi nez k, takze je moznym resenim
//je tam dalsi vyskyt k?
return A[x] <= k; return A[x] <= k;
} }
//binarni vyhledavni - pomocna funkce algoritmu binaryMatice
//v pripade kdy se prvek k vyskytuje cetne, vraci funkce nejvyssi index jednoho z vyskytujicich prvku k v poli
static private int nejvetsiPrvekNeVetsiNezK(int[] A, int x, int y, int k) static private int nejvetsiPrvekNeVetsiNezK(int[] A, int x, int y, int k)
{ {
int l = x, r = y; int l = x, r = y;
...@@ -62,15 +65,20 @@ namespace AlgorithmLibrary ...@@ -62,15 +65,20 @@ namespace AlgorithmLibrary
return nejlepsi; return nejlepsi;
} }
static public Tuple<int, int> SaddlebackSearch(int[][] A, int k) static public Tuple<int, int> Saddleback(int[][] A, int k)
{ {
index1 = -1; index1 = -1;
index2 = -1; index2 = -1;
saddlebackSearch(A, k); saddleback(A, k);
return new Tuple<int, int>(index1, index2); return new Tuple<int, int>(index1, index2);
} }
/**
static private void saddlebackSearch(int[][] A, int k) * Saddleback vyhledavani v matici prvniho vyskytu NEREKURZIVNI
* @param A pole k serazeni
* @param k hledany prvek
* @return algoritmus ulozi pozici vyskytu do promene index1 a index2
*/
static private void saddleback(int[][] A, int k)
{ {
int i = 0; int i = 0;
int j = A[0].Length - 1; int j = A[0].Length - 1;
...@@ -96,7 +104,18 @@ namespace AlgorithmLibrary ...@@ -96,7 +104,18 @@ namespace AlgorithmLibrary
indexPrvku2D(A, 0, A.Length - 1, 0, A[0].Length - 1, k, div1, div2); indexPrvku2D(A, 0, A.Length - 1, 0, A[0].Length - 1, k, div1, div2);
return new Tuple<int, int>(index1, index2); return new Tuple<int, int>(index1, index2);
} }
/**
* Vyhledavaní prvku v matici pomoci rozdel a panuj
* @param A 2D pole, ve kterem se hleda prvek
* @param x prvni index radku na ktery se smi sahnout
* @param y posledni index radku, na ktery se smi sahnout
* @param u prvni index sloupce na ktery se smi sahnout
* @param v posledni index sloupce, na ktery se smi sahnout
* @param k hledany prvek
* @param div1 hodnota urcujici pomer rozdeleni b1 v ramci radku
* @param div2 hodnota urcujici pomer rozdeleni b2 v ramci sloupcu
* @return pozice vyskytu se ulozi do globalni promene index1 a index2
*/
static private void indexPrvku2D(int[][] A, int x, int y, int u, int v, int k, float div1, float div2) static private void indexPrvku2D(int[][] A, int x, int y, int u, int v, int k, float div1, float div2)
{ {
...@@ -156,7 +175,17 @@ namespace AlgorithmLibrary ...@@ -156,7 +175,17 @@ namespace AlgorithmLibrary
} }
return result; return result;
} }
/**
* Vyhledavani vice vyskytu prvku v matici pomoci rozdel a panuj
* @param A 2D pole, ve kterem se hleda prvek
* @param x prvni index radku na ktery se smi sahnout
* @param y posledni index radku, na ktery se smi sahnout
* @param u prvni index sloupce na ktery se smi sahnout
* @param v posledni index sloupce, na ktery se smi sahnout
* @param k hledany prvek
* @param div hodnota urcujici pomer rozdeleni b v ramci radku i sloupcu
* @return pozice vyskytu se ulozi do globalni promene indexy
*/
static private void indexyPrvku2D(int[][] A, int x, int y, int u, int v, int k, float div) static private void indexyPrvku2D(int[][] A, int x, int y, int u, int v, int k, float div)
{ {
if (u >= v && x >= y) if (u >= v && x >= y)
...@@ -203,17 +232,17 @@ namespace AlgorithmLibrary ...@@ -203,17 +232,17 @@ namespace AlgorithmLibrary
indexyPrvku2D(A, x, e1, u, e2, k, div); indexyPrvku2D(A, x, e1, u, e2, k, div);
if (!row) if (!row) //pokud to neni radek
{ {
indexyPrvku2D(A, e1 + 1, y, u, e2, k, div); indexyPrvku2D(A, e1 + 1, y, u, e2, k, div);
} }
if (!column) if (!column) //pokud to neni sloupec
{ {
indexyPrvku2D(A, x, e1, e2 + 1, v, k, div); indexyPrvku2D(A, x, e1, e2 + 1, v, k, div);
} }
if (!row || !column) if (!row || !column) //pokud to neni radek nebo sloupec
{ {
indexyPrvku2D(A, e1 + 1, y, e2 + 1, v, k, div); indexyPrvku2D(A, e1 + 1, y, e2 + 1, v, k, div);
} }
...@@ -221,30 +250,6 @@ namespace AlgorithmLibrary ...@@ -221,30 +250,6 @@ namespace AlgorithmLibrary
} }
return; return;
} }
private static int indexPrvkuSloupec(int[][] A, int column, int x, int y, int k, float div)
{
if (x > y)
return -1;
//int mid = (l + r) / 2;
int interval = y - x;
int rozdel = (int)(interval * (1 - div));
int divIndex = x + rozdel;
if (A[divIndex][column] == k)
{
return divIndex;
}
else if (A[divIndex][column] < k)
{
return indexPrvkuSloupec(A, column, divIndex + 1, y, k, div);
}
else
{
return indexPrvkuSloupec(A, column, x, divIndex - 1, k, div);
}
}
static public Tuple<int, int> BinaryMatice(int[][] A, int k, float div) static public Tuple<int, int> BinaryMatice(int[][] A, int k, float div)
{ {
...@@ -253,7 +258,17 @@ namespace AlgorithmLibrary ...@@ -253,7 +258,17 @@ namespace AlgorithmLibrary
binaryMatice(A, 0, A.Length - 1, 0, A[0].Length - 1, k, div); binaryMatice(A, 0, A.Length - 1, 0, A[0].Length - 1, k, div);
return new Tuple<int, int>(index1, index2); return new Tuple<int, int>(index1, index2);
} }
/**
* Vyhledavani prvniho vyskytu prvku v matici pomoci binarniho vyhledavani
* @param A 2D pole, ve kterem se hleda prvek
* @param x prvni index radku na ktery se smi sahnout
* @param y posledni index radku, na ktery se smi sahnout
* @param u prvni index sloupce na ktery se smi sahnout
* @param v posledni index sloupce, na ktery se smi sahnout
* @param k hledany prvek
* @param div hodnota urcujici pomer rozdeleni b radku a binarniho vyhledvani
* @return pozice vyskytu se ulozi do globalni promene indexy
*/
static private void binaryMatice(int[][] A, int x, int y, int u, int v, int k, float div) static private void binaryMatice(int[][] A, int x, int y, int u, int v, int k, float div)
{ {
if (v < u) return; if (v < u) return;
...@@ -277,8 +292,8 @@ namespace AlgorithmLibrary ...@@ -277,8 +292,8 @@ namespace AlgorithmLibrary
return; return;
} }
int e1 = (int)(x + (y - x) * div); int e1 = (int)(x + (y - x) * div); //urceni radku pomoci parametru div
int e2 = nejvetsiPrvekNeVetsiNezK(A[e1], u, v, k); int e2 = nejvetsiPrvekNeVetsiNezK(A[e1], u, v, k); //binarni vyhledavani na radku
if (e2 == -1) if (e2 == -1)
{ {
...@@ -303,9 +318,11 @@ namespace AlgorithmLibrary ...@@ -303,9 +318,11 @@ namespace AlgorithmLibrary
static private bool neniVetsiNezK2(int[] A, int x, int k) static private bool neniVetsiNezK2(int[] A, int x, int k)
{ {
// neni vetsi nez k, takze je moznym resenim // je mensi nez k, takze je moznym resenim
return A[x] < k; return A[x] < k;
} }
//pomocna funkce algoritmu BinaryMaticeVsechny
//vrati pozici nejvetsiho prvku na radku, ktery je mensi nez k
static private int nejvetsiPrvekMensiNezK(int[] A, int x, int y, int k) static private int nejvetsiPrvekMensiNezK(int[] A, int x, int y, int k)
{ {
int l = x, r = y; int l = x, r = y;
...@@ -326,7 +343,7 @@ namespace AlgorithmLibrary ...@@ -326,7 +343,7 @@ namespace AlgorithmLibrary
} }
if (nejlepsi == -1) if (nejlepsi == -1)
{ {
nejlepsi = l - 1; // -1 je tu protoze se po vyjiti z funkce pricte 1, takze aby to sedelo; nejlepsi = l - 1; // -1 je tu proto, ze se po vyjiti z funkce na nekterych mistech hlavniho algoritmu pricte 1
} }
return nejlepsi; return nejlepsi;
...@@ -339,6 +356,9 @@ namespace AlgorithmLibrary ...@@ -339,6 +356,9 @@ namespace AlgorithmLibrary
if (prvni) return A[x][sloupec] < k; if (prvni) return A[x][sloupec] < k;
return A[x][sloupec] <= k; return A[x][sloupec] <= k;
} }
//upravene binarni vyhledavani ve sloupci matice
//pomocna funkce algoritmu BinaryMaticeVsechny
//funkce najde prvni nebo posledni vyskyt podle nastaveni parametru prvni
static private int prvniPosledniSloupec(int[][] A, int sloupec, int x, int y, int k, bool prvni) static private int prvniPosledniSloupec(int[][] A, int sloupec, int x, int y, int k, bool prvni)
{ {
int l = x, r = y; int l = x, r = y;
...@@ -360,6 +380,31 @@ namespace AlgorithmLibrary ...@@ -360,6 +380,31 @@ namespace AlgorithmLibrary
return nejlepsi; return nejlepsi;
} }
//binarni vyhledavani ve sloupci matice
//pomocna funkce algoritmu BinaryMaticeVsechny
private static int indexPrvkuSloupec(int[][] A, int column, int x, int y, int k, float div)
{
if (x > y)
return -1;
int interval = y - x;
int rozdel = (int)(interval * (1 - div));
int divIndex = x + rozdel;
if (A[divIndex][column] == k)
{
return divIndex;
}
else if (A[divIndex][column] < k)
{
return indexPrvkuSloupec(A, column, divIndex + 1, y, k, div);
}
else
{
return indexPrvkuSloupec(A, column, x, divIndex - 1, k, div);
}
}
//pomocna funkce algoritmu BinaryMaticeVsechny
//uklada vsechny pozice vyskytu ve vymezene sekci
static private void ulozPozicevyksytu(int[][] A, int x, int y, int L, int R, int row, int k, float div) static private void ulozPozicevyksytu(int[][] A, int x, int y, int L, int R, int row, int k, float div)
{ {
for (int i = L; i <= R; i++) for (int i = L; i <= R; i++)
...@@ -374,11 +419,11 @@ namespace AlgorithmLibrary ...@@ -374,11 +419,11 @@ namespace AlgorithmLibrary
} }
} }
static public Tuple<int, int>[] BinaryMatice2(int[][] A, int k, float div) static public Tuple<int, int>[] BinaryMaticeVsechny(int[][] A, int k, float div)
{ {
indexy = new int[4_000_000]; indexy = new int[4_000_000];
counter = 0; counter = 0;
binaryMatice2(A, 0, A.Length - 1, 0, A[0].Length - 1, k, div); binaryMaticeVsechny(A, 0, A.Length - 1, 0, A[0].Length - 1, k, div);
Tuple<int, int>[] result = new Tuple<int, int>[counter/2]; Tuple<int, int>[] result = new Tuple<int, int>[counter/2];
for (int i = 0; i < counter; i += 2) for (int i = 0; i < counter; i += 2)
{ {
...@@ -386,14 +431,22 @@ namespace AlgorithmLibrary ...@@ -386,14 +431,22 @@ namespace AlgorithmLibrary
} }
return result; return result;
} }
/**
static private void binaryMatice2(int[][] A, int x, int y, int u, int v, int k, float div/*,bool IsFound*/) * Vyhledavani vsech vyskytu prvku v matici pomoci binarniho vyhledavani
* @param A 2D pole, ve kterem se hleda prvek
* @param x prvni index radku na ktery se smi sahnout
* @param y posledni index radku, na ktery se smi sahnout
* @param u prvni index sloupce na ktery se smi sahnout
* @param v posledni index sloupce, na ktery se smi sahnout
* @param k hledany prvek
* @param div hodnota urcujici pomer rozdeleni b radku a binarniho vyhledvani
* @return pozice vyskytu se ulozi do globalni promene indexy
*/
static private void binaryMaticeVsechny(int[][] A, int x, int y, int u, int v, int k, float div)
{ {
int index_L = -1; int index_L = -1;
int index_R = -1; int index_R = -1;
if (v < u) return; if (v < u) return;
//if (IsFound) return; ??????
//if (index1 != -1 && index2 != -1) return;
if (x == -1 || y == -1) return; if (x == -1 || y == -1) return;
if (y < x) return; if (y < x) return;
...@@ -402,26 +455,22 @@ namespace AlgorithmLibrary ...@@ -402,26 +455,22 @@ namespace AlgorithmLibrary
if (x == y && u == v && A[x][u] == k) if (x == y && u == v && A[x][u] == k)
{ {
indexy[counter++] = x; indexy[counter++] = u; indexy[counter++] = x; indexy[counter++] = u; //zapsani pozice vyskytu prvku k
} }
else { return; } else { return; }
} }
if (x == y) if (x == y)
{ {
index_R = nejvetsiPrvekNeVetsiNezK(A[x], u, v, k); //najdi nejpravejsi vyskyt prku a uloz index
//int radek = x;
index_R = nejvetsiPrvekNeVetsiNezK(A[x], u, v, k);
if (index_R != -1) if (index_R != -1)
{ {
if (A[x][index_R] == k) if (A[x][index_R] == k)
{ {
index_L = nejvetsiPrvekMensiNezK(A[x], u, v, k) + 1; index_L = nejvetsiPrvekMensiNezK(A[x], u, v, k) + 1; //pokud se prvek nasel, hledame levou hranici intervalu, na kterem lezi hledane prvky
for (int i = index_L; i <= index_R; i++) for (int i = index_L; i <= index_R; i++)
{ {
indexy[counter++] = x; indexy[counter++] = i; indexy[counter++] = x; indexy[counter++] = i; //zapsani pozice vyskytu prvku k
} }
} }
...@@ -436,21 +485,21 @@ namespace AlgorithmLibrary ...@@ -436,21 +485,21 @@ namespace AlgorithmLibrary
if (e2 == -1) if (e2 == -1)
{ {
e2 = u - 1; e2 = u - 1;
binaryMatice2(A, x, e1 - 1, e2 + 1, v, k, div); binaryMaticeVsechny(A, x, e1 - 1, e2 + 1, v, k, div);
return; return;
} }
if (A[e1][e2] == k) if (A[e1][e2] == k)
{ {
index_R = e2; index_R = e2;
index_L = nejvetsiPrvekMensiNezK(A[e1], u, v, k) + 1; index_L = nejvetsiPrvekMensiNezK(A[e1], u, v, k) + 1;
ulozPozicevyksytu(A, x, y, index_L, index_R, e1, k, div); ulozPozicevyksytu(A, x, y, index_L, index_R, e1, k, div); //zapsani pozice vyskytu prvku k
e2 = index_L - 1; e2 = index_L - 1;
} }
binaryMatice2(A, e1 + 1, y, u, e2, k, div/*,IsFound*/); binaryMaticeVsechny(A, e1 + 1, y, u, e2, k, div);
e2 = e2_hranice; e2 = e2_hranice;
binaryMatice2(A, x, e1 - 1, e2 + 1, v, k, div/*,IsFound*/); binaryMaticeVsechny(A, x, e1 - 1, e2 + 1, v, k, div);
return; return;
......
...@@ -21,6 +21,7 @@ namespace AlgorithmLibrary ...@@ -21,6 +21,7 @@ namespace AlgorithmLibrary
* @param aux pomocne pole stejne delky jako array * @param aux pomocne pole stejne delky jako array
* @param left prvni index na ktery se smi sahnout * @param left prvni index na ktery se smi sahnout
* @param right posledni index, na ktery se smi sahnout * @param right posledni index, na ktery se smi sahnout
* @param div hodnota delici interval z rozsahu 0.5 az 1
*/ */
public static void mergeSort(int[] array, int[] aux, int left, int right, float div) public static void mergeSort(int[] array, int[] aux, int left, int right, float div)
{ {
...@@ -47,6 +48,7 @@ namespace AlgorithmLibrary ...@@ -47,6 +48,7 @@ namespace AlgorithmLibrary
* @param aux pomocne pole (stejne velikosti jako razene) * @param aux pomocne pole (stejne velikosti jako razene)
* @param left prvni index, na ktery smim sahnout * @param left prvni index, na ktery smim sahnout
* @param right posledni index, na ktery smim sahnout * @param right posledni index, na ktery smim sahnout
* @param div hodnota delici interval z rozsahu 0.5 az 1
*/ */
private static void Merge(int[] array, int[] aux, int left, int right, float div) private static void Merge(int[] array, int[] aux, int left, int right, float div)
{ {
......
...@@ -9,7 +9,7 @@ namespace AlgorithmLibrary ...@@ -9,7 +9,7 @@ namespace AlgorithmLibrary
{ {
int[] array = { 5, 2, 9, 1, 5, 6 }; int[] array = { 5, 2, 9, 1, 5, 6 };
float div = 0.99f; float div = 0.75f;
Console.WriteLine("\nMERGESORT:\n"); Console.WriteLine("\nMERGESORT:\n");
Console.WriteLine("Před: " + string.Join(", ", array)); Console.WriteLine("Před: " + string.Join(", ", array));
...@@ -21,7 +21,7 @@ namespace AlgorithmLibrary ...@@ -21,7 +21,7 @@ namespace AlgorithmLibrary
Console.WriteLine("indexPrvku: " + BinarySearch.IndexPrvku(array, 6, div)); Console.WriteLine("indexPrvku: " + BinarySearch.IndexPrvku(array, 6, div));
Console.WriteLine("indexPrvku2: " + BinarySearch.IndexPrvkuIterativni(array, 6, div)); Console.WriteLine("indexPrvku2: " + BinarySearch.IndexPrvkuIterativni(array, 6, div));
Console.WriteLine("indexPrvkuFloat: " + BinarySearch.IndexPrvkuFloat(new float[] { 1.0f, 2.0f, 5.0f, 5.0f, 6.0f, 9.0f }, 6.0f, div)); Console.WriteLine("indexPrvkuFloat: " + BinarySearch.IndexPrvkuFloat(new float[] { 1.0f, 2.0f, 5.0f, 5.0f, 6.0f, 9.0f }, 6.0f, div));
Console.WriteLine("nejvetsiPrvekNeVetsiNezK: " + BinarySearch.NejvetsiPrvekNeVetsiNezK(array, 6)); Console.WriteLine("nejvetsiPrvekNeVetsiNezK: " + BinarySearch.NejvetsiPrvekNeVetsiNezK(array, 6,div));
Console.WriteLine("\n----------------------"); Console.WriteLine("\n----------------------");
Console.WriteLine("\nMATICOVÉ VYHLEDÁVÁNÍ\n"); Console.WriteLine("\nMATICOVÉ VYHLEDÁVÁNÍ\n");
...@@ -39,7 +39,7 @@ namespace AlgorithmLibrary ...@@ -39,7 +39,7 @@ namespace AlgorithmLibrary
Console.WriteLine("Hledaný prvek: " + k); Console.WriteLine("Hledaný prvek: " + k);
Console.WriteLine(); Console.WriteLine();
Tuple<int, int> result = MatrixSearch.SaddlebackSearch(matrix, k); Tuple<int, int> result = MatrixSearch.Saddleback(matrix, k);
Console.WriteLine($"Saddleback: ({result.Item1}, {result.Item2})"); Console.WriteLine($"Saddleback: ({result.Item1}, {result.Item2})");
result = MatrixSearch.IndexPrvku2D(matrix, k, div1, div2); result = MatrixSearch.IndexPrvku2D(matrix, k, div1, div2);
...@@ -55,8 +55,8 @@ namespace AlgorithmLibrary ...@@ -55,8 +55,8 @@ namespace AlgorithmLibrary
result = MatrixSearch.BinaryMatice(matrix2, k, div1); result = MatrixSearch.BinaryMatice(matrix2, k, div1);
Console.WriteLine($"BinaryMatice: ({result.Item1}, {result.Item2})"); Console.WriteLine($"BinaryMatice: ({result.Item1}, {result.Item2})");
results = MatrixSearch.BinaryMatice2(matrix3, k, div1); results = MatrixSearch.BinaryMaticeVsechny(matrix3, k, div1);
Console.WriteLine("BinaryMatice2:"); Console.WriteLine("BinaryMaticeVsechny:");
foreach (var res in results) foreach (var res in results)
{ {
Console.WriteLine($"({res.Item1}, {res.Item2})"); Console.WriteLine($"({res.Item1}, {res.Item2})");
......