Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.20 KB | None | 0 0
  1. s.selekcje
  2. static void Sort(int[] L)
  3. {
  4. for (int i = 0; i < L.Length - 1; i++)
  5. {
  6. int k = i;
  7. for (int j = i + 1; j < L.Length; j++)
  8. {
  9. if (L[k] > L[j])
  10. {
  11. k = j;
  12. }
  13. }
  14. int t = L[k];
  15. L[k] = L[i];
  16. L[i] = t;
  17. }
  18. }
  19. s.wstawianie
  20. static void Wstawianie( int[] tab )
  21. {
  22. for( int i = 1; i < tab.Length; i++ )
  23. {
  24. int key = tab[ i ];
  25. int j = i;
  26. while( j > 0 && tab[ j - 1 ] < key )
  27. {
  28. tab[ j ] = tab[ j - 1 ];
  29. j--;
  30. }
  31. tab[ j ] = key;
  32. }
  33. }
  34. S.bombelkowe
  35. static void Sort(int[] L)
  36. {
  37. int N = L.Length;
  38.  
  39. for (int i = 0; i < N; i++)
  40. {
  41. for (int j = N - 1; j > i; j--)
  42. {
  43. if (L[j] < L[j - 1])
  44. {
  45. int t = L[j - 1];
  46. L[j - 1] = L[j];
  47. L[j] = t;
  48. }
  49. }
  50. }
  51. for (int i = 0; i < N; i++)
  52. {
  53. Console.Write(L[i]+", ");
  54. }
  55. }
  56. S.zliczanie
  57. static int[] Sort(int[] tab, int k)
  58. {
  59. int[] licznik = new int[k+1];
  60. int[] tab2 = new int[tab.Length];
  61. for (int i = 0; i < tab.Length; i++)
  62. {
  63. licznik[tab[i]]++;
  64. }
  65. for (int i = 0; i < k; i++)
  66. {
  67. licznik[i + 1] += licznik[i];
  68. }
  69. for (int i = tab.Length - 1; i >= 0; i--)
  70. {
  71. tab2[licznik[tab[i]] - 1] = tab[i];
  72. licznik[tab[i]]--;
  73. }
  74. return tab2;
  75. }
  76. MergeSort
  77. static void Scalaj(int[] T, int p, int mid, int k)
  78. {
  79. int[] T2 = new int[T.Length];
  80. int p1 = p, k1 = mid;
  81. int p2 = mid + 1, k2 = k;
  82. int i = p1;
  83. while ((p1 <= k1) && (p2 <= k2))
  84. {
  85. if (T[p1] < T[p2])
  86. {
  87. T2[i] = T[p1]; p1++;
  88. }
  89. else
  90. {
  91. T2[i] = T[p2]; p2++;
  92. }
  93. i++;
  94. }
  95. while (p1 <= k1)
  96. {
  97. T2[i] = T[p1]; p1++; i++;
  98. }
  99. while (p2 <= k2)
  100. {
  101. T2[i] = T[p2]; p2++; i++;
  102. }
  103. for (i = p; i <= k; i++) T[i] = T2[i];
  104. }
  105. static void MergeSort(int[] T, int p, int k)
  106. {
  107. if (p < k)
  108. {
  109. int mid = (p + k) / 2;
  110. MergeSort(T, p, mid);
  111. MergeSort(T, mid + 1, k);
  112. Scalaj(T, p, mid, k);
  113. }
  114. }
  115. QuickSort
  116. static int Podzial(int[] T, int l, int p)
  117. {
  118. int i, j, klucz, tmp, index;
  119. index = p;
  120. klucz = T[index];
  121. i = l;
  122. for (j = l; j < p; j++)
  123. {
  124. if (T[j] <= klucz)
  125. { tmp= T[i];
  126. T[i] = T[j];
  127. T[j] = tmp;
  128. i++;
  129. }
  130. }
  131. tmp = T[i];
  132. T[i] = T[p];
  133. T[p] = tmp;
  134. return i;
  135. }
  136. static void QuickSort(int[] T, int l, int p)
  137. {
  138. if (l >= p)
  139. {
  140. return;
  141. }
  142. int i = Podzial(T, l, p);
  143. QuickSort(T, l, i - 1);
  144. QuickSort(T, i + 1, p);
  145. }
  146. zad2c/
  147. static int Przedzial(int[] tab, int x)
  148. {
  149. if (x>tab[0])
  150. {
  151. return tab.Length;
  152. }
  153. for (int i = 0; i < tab.Length; i++)
  154. {
  155. if (x>=tab[i])
  156. {
  157. return tab[i];
  158. }
  159. }
  160. return x;
  161. //złożoność liniowa = n
  162.  
  163. }
  164. zad3c/
  165. static void Wyswietl(int[] a)
  166. {
  167. for (int i = 0; i < a.Length; i++)
  168. {
  169. Console.Write(a[i] + ", ");
  170. }
  171. Console.WriteLine();
  172. }
  173. static void Wstawianie(int[] tab)
  174. {
  175. for (int i = 0; i < tab.Length; i++)
  176. {
  177. int k = tab[i];
  178. int j = i;
  179. while (j > 0 && tab[j - 1] > k)
  180. {
  181. tab[j] = tab[j - 1];
  182. j--;
  183. }
  184. tab[j] = k;
  185. }
  186. }
  187. zad4/
  188. static void Przedzial2(int[] A, int x)
  189. {
  190. int[] w = new int[2];
  191. if (A[0] >= x)
  192. {
  193. Console.WriteLine("A[0]>=" + x);
  194. }
  195. else if (A[A.Length - 1] < x)
  196. {
  197. Console.WriteLine("A[n]<" + x);
  198. }
  199. else
  200. {
  201. int i = 0;
  202. int j = A.Length - 1;
  203. while (i < j)
  204. {
  205. int k = (i + j) / 2;
  206. if (x > A[k])
  207. {
  208. i = k + 1;
  209. }
  210. else
  211. {
  212. j = k;
  213. }
  214. }
  215. Console.WriteLine("(" + A[j - 1] + "," + A[j] + ">");
  216. }
  217. Console.WriteLine();
  218. }
  219. zad5c/
  220. static int Siatka(int[,] p, int[,] d, int[,] s, int y, int x,int[,] kroki)
  221. {
  222. int[,] wynik = new int[y + 1, x + 1];
  223. wynik[0, 0] = 0;
  224.  
  225. for (int i = 1; i < y+1; i++)
  226. {
  227. wynik[i, 0] = wynik[i-1,0]+d[i-1,0];
  228. }
  229. for (int i = 1; i < x+1; i++)
  230. {
  231. wynik[0, i] = wynik[0,i-1]+p[0,i-1];
  232. }
  233. for (int i = 1; i < y+1; i++)
  234. {
  235. for (int j = 1; j < x+1; j++)
  236. {
  237. if ((wynik[i - 1, j] + d[i - 1, j] > wynik[i, j - 1] + p[i, j - 1]) && p[i, j - 1] != -1)
  238. {
  239. if (wynik[i, j - 1] + p[i, j - 1] > wynik[i - 1, j - 1] + s[i - 1, j - 1])
  240. {
  241. wynik[i, j] = wynik[i - 1, j - 1] + s[i - 1, j - 1];
  242. kroki[i, j] = 3;
  243. }
  244. else
  245. {
  246. wynik[i, j] = wynik[i, j - 1] + p[i, j - 1];
  247. kroki[i, j] = 2;
  248. }
  249. }
  250. else
  251. {
  252. if (wynik[i - 1, j] + d[i - 1, j] > wynik[i - 1, j - 1] + s[i - 1, j - 1])
  253. {
  254. wynik[i, j] = wynik[i - 1, j - 1] + s[i - 1, j - 1];
  255. kroki[i, j] = 3;
  256. }
  257. else
  258. {
  259. wynik[i, j] = wynik[i - 1, j] + d[i - 1, j];
  260. kroki[i, j] = 1;
  261. }
  262. }
  263. }
  264. }
  265. return wynik[y, x];
  266. }
  267. static void Ścieżka(int[,] kroki, int m, int n)
  268. {
  269. Stack<string> ścieżka = new Stack<string>();
  270. int i = n;
  271. int j = m;
  272. while (kroki[i, j] > 0)
  273. {
  274. if (kroki[i, j] == 1)
  275. {
  276. ścieżka.Push("down");
  277. i--;
  278. }
  279. else if (kroki[i, j] == 2)
  280. {
  281. ścieżka.Push("right");
  282. j--;
  283. }
  284. else
  285. {
  286. ścieżka.Push("skos");
  287. i--;
  288. j--;
  289. }
  290. ;
  291. }
  292. while (ścieżka.Count > 0)
  293. {
  294. Console.WriteLine(ścieżka.Pop()); //Pop usuwa ze stosu
  295. }
  296. }
  297.  
  298. static void Main(string[] args)
  299. {
  300. int n = 3;
  301. int m = 4;
  302. int[,] kroki = new int[n + 1, m + 1];
  303. int[,] d =
  304. {
  305. {1,2,3,5,0 },
  306. {1,1,0,9,3 },
  307. {2,2,0,1,1 }
  308. };
  309. int[,] p =
  310. {
  311. {3,2,0,1 },
  312. {-1,-1,-1,-1 },
  313. {-1,-1,-1,-1 },
  314. {2,1,0,4 }
  315. };
  316. int[,] s =
  317. {
  318. {5,2,1,0 },
  319. {2,2,2,1 },
  320. {0,1,2,3 }
  321. };
  322. Console.WriteLine(Siatka(p, d, s, n, m,kroki));
  323. Ścieżka(kroki, m, n);
  324. Console.ReadKey();
  325. }
  326. zad5/
  327. static int[,] Torba2(int[] tab, int k)
  328. {
  329. int[,] w = new int[tab.Length+1,k+1];
  330. for (int i = 0; i <= tab.Length; i++)
  331. {
  332. w[i, 0] = 0;
  333. }
  334. for (int i = 0; i <= k; i++)
  335. {
  336. w[0, i] = 0;
  337. }
  338.  
  339. for (int i = 1; i <= tab.Length; i++)
  340. {
  341. for (int j = 1; j <= k; j++)
  342. {
  343. int m = Math.Max(w[i - 1, j], w[i, j - 1]);
  344. if (j >= tab[i - 1])
  345. {
  346. m = Math.Max(m, w[i - 1, j - tab[i - 1]] + tab[i - 1]);
  347. }
  348. w[i, j] = m;
  349. }
  350. }
  351. return w;
  352. }
  353. static void Wyswietl(int[,] a, int[] b)
  354. {
  355. for (int i = 0; i < a.GetLength(0); i++)
  356. {
  357. for (int j = 0; j < a.GetLength(1); j++)
  358. {
  359. Console.Write(a[i,j] + ", ");
  360. }
  361. Console.WriteLine();
  362. }
  363. Console.WriteLine();
  364. Console.WriteLine("Max = " + a[a.GetLength(0)-1,a.GetLength(1)-1]);
  365. Console.WriteLine();
  366. for (int i = 1; i <= b.Length; i++)
  367. {
  368. if (a[i,a.GetLength(1)-1]!=a[i-1, a.GetLength(1)-1])
  369. {
  370. Console.Write(b[i-1]+", ");
  371. }
  372. }
  373. }
  374. zad2a
  375. using System;
  376. using System.Collections.Generic;
  377. using System.Linq;
  378. using System.Text;
  379. using System.Threading.Tasks;
  380.  
  381. namespace ConsoleApp1
  382. {
  383. class Program
  384. {
  385. static int Podzial(string[] T, int l, int p)
  386. {
  387. int i, j, klucz, index;
  388. string tmp;
  389. index = p;
  390. klucz = T[index].Length;
  391. i = l;
  392. for (j = l; j < p; j++)
  393. {
  394. if (T[j].Length <= klucz)
  395. {
  396. tmp = T[i];
  397. T[i] = T[j];
  398. T[j] = tmp;
  399. i++;
  400. }
  401. }
  402. tmp = T[i];
  403. T[i] = T[p];
  404. T[p] = tmp;
  405. return i;
  406. }
  407. static void QuickSort(string[] T, int l, int p)
  408. {
  409. if (l >= p)
  410. {
  411. return;
  412. }
  413. int i = Podzial(T, l, p);
  414. QuickSort(T, l, i - 1);
  415. QuickSort(T, i + 1, p);
  416. }
  417. static void Main(string[] args)
  418. {
  419. string[] a = { "aa", "aaa", "aaaaaa", "a" };
  420. QuickSort(a, 0, 3);
  421. for (int i = 0; i < a.Length; i++)
  422. {
  423. Console.Write(a[i]+", " );
  424. }
  425. Console.WriteLine();
  426. Console.ReadKey();
  427. }
  428. }
  429. }
  430.  
  431. zad2c
  432. static public void merge(string[] arr, int p, int q, int r)
  433. {
  434. int i, j, k;
  435. int n1 = q - p + 1;
  436. int n2 = r - q;
  437. string[] L = new String[n1];
  438. string[] R = new String[n2];
  439. for (i = 0; i < n1; i++)
  440. {
  441. L[i] = arr[p + i];
  442. }
  443. for (j = 0; j < n2; j++)
  444. {
  445. R[j] = arr[q + 1 + j];
  446. }
  447. i = 0;
  448. j = 0;
  449. k = p;
  450. while (i < n1 && j < n2)
  451. {
  452. if (L[i].Length <= R[j].Length)
  453. {
  454. arr[k] = L[i];
  455. i++;
  456. }
  457. else
  458. {
  459. arr[k] = R[j];
  460. j++;
  461. }
  462. k++;
  463. }
  464. while (i < n1)
  465. {
  466. arr[k] = L[i];
  467. i++;
  468. k++;
  469. }
  470. while (j < n2)
  471. {
  472. arr[k] = R[j];
  473. j++;
  474. k++;
  475. }
  476. }
  477. static public void mergeSort(string[] arr, int p, int r)
  478. {
  479. if (p < r)
  480. {
  481. int q = (p + r) / 2;
  482. mergeSort(arr, p, q);
  483. mergeSort(arr, q + 1, r);
  484. merge(arr, p, q, r);
  485. }
  486. }
  487. static void Main(string[] args)
  488. {
  489. string[] arr = { "a","ala","kokokosdasderfni","Alicja","kot","dupa"};
  490. int n = 6, i;
  491. Console.WriteLine("Merge Sort");
  492. Console.Write("Initial array is: ");
  493. for (i = 0; i < n; i++)
  494. {
  495. Console.Write(arr[i] + " ");
  496. }
  497. mergeSort(arr, 0, n - 1);
  498. Console.Write("\nSorted Array is: ");
  499. for (i = 0; i < n; i++)
  500. {
  501. Console.Write(arr[i] + " ");
  502. }
  503.  
  504. Console.ReadKey();
  505. }
  506. zad3c
  507. using System;
  508. using System.Collections.Generic;
  509. using System.Linq;
  510. using System.Text;
  511. using System.Threading.Tasks;
  512.  
  513. namespace zad3
  514. {
  515. class Program
  516. {
  517. static void Main( string[] args )
  518. {
  519. char[] alfabet = { 'A', 'F', 'B', 'C', 'F', 'B', 'C' };
  520.  
  521. AlfabetSort( alfabet );
  522.  
  523. foreach( char a in alfabet )
  524. Console.Write( a );
  525.  
  526. Console.ReadKey();
  527. }
  528.  
  529. static void AlfabetSort( char[] tab )
  530. {
  531. int[] wystapienia = new int[ 6 ]; // Ilość Wystąpień znaków A, B, C, D, E F
  532. char[] w = new char[ tab.Length ];
  533.  
  534. foreach( char a in tab )
  535. wystapienia[ a - 'A' ]++;
  536.  
  537. for( int i = 1; i < wystapienia.Length; i++ )
  538. wystapienia[ i ] += wystapienia[ i - 1 ];
  539.  
  540. for( int i = tab.Length-1; i >= 0 ; i-- )
  541. {
  542. int p = wystapienia[ tab[ i ] - 'A' ];
  543. w[ p - 1 ] = tab[ i ];
  544. wystapienia[ tab[ i ] - 'A' ]--;
  545. }
  546.  
  547. Array.Copy( w, tab, tab.Length );
  548. }
  549. }
  550. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement