Advertisement
Krefeld187

Untitled

Nov 5th, 2020
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.40 KB | None | 0 0
  1. import java.util.Random;
  2.  
  3. public class Giithub {
  4.  
  5. public Giithub()
  6. {
  7.  
  8. }
  9.  
  10. public static void main(String[] args)
  11. {
  12. int length = 10;
  13. int field[] = new int [length];
  14. int field1[] = new int[length];
  15. int field2[] = new int[length];
  16. int field3[] = new int[length];
  17. int field4[] = new int[length];
  18.  
  19. String arr [] = new String[length];
  20. String arr1 [] = new String[length];
  21. String arr2 [] = new String[length];
  22. String arr3 [] = new String[length];
  23.  
  24. //Int
  25.  
  26. Giithub t = new Giithub();
  27. erzeugen(field, 50);
  28. kopieren(field, field1, field2, field3,field4);
  29. ausgeben(field);
  30.  
  31. System.out.println();
  32. System.out.println("Bubblesort");
  33. Bubblesort(field);
  34. ausgeben(field);
  35.  
  36. System.out.println();
  37. System.out.println("insertionsort");
  38. insertionsort(field1);
  39. ausgeben(field1);
  40.  
  41. System.out.println();
  42. System.out.println("selectionsort");
  43. selectionsort(field2);
  44. ausgeben(field2);
  45. System.out.println();
  46.  
  47. // System.out.println();
  48. // System.out.println("Quicksort");
  49. // quicksort(0,arr.length-1,field3);
  50. // ausgeben(field3);
  51.  
  52. System.out.println("Quicksort");
  53. sort(field4,0,field4.length - 1);
  54. // QuicksortTextAusgeben();
  55. ausgeben(field4);
  56.  
  57. System.out.println();
  58. System.out.println("String");
  59. System.out.println();
  60.  
  61. //String
  62. erzeugen(5,arr);
  63. kopieren(arr, arr1, arr2, arr3);
  64. ausgeben(arr);
  65.  
  66. System.out.println();
  67. System.out.println("Bubblesort");
  68. Bubblesort(arr);
  69. ausgeben(arr);
  70.  
  71. System.out.println();
  72. System.out.println("insertionsort");
  73. insertionsort(arr1);
  74. ausgeben(arr1);
  75.  
  76. System.out.println();
  77. System.out.println("selectionsort");
  78. selectionsort(arr2);
  79. ausgeben(arr2);
  80.  
  81. }
  82.  
  83. static public void kopieren(int[] feld, int[] feld1, int[] feld2, int [] feld3, int [] feld4)
  84. {
  85. for(int i = 0; i < feld.length; ++i)
  86. {
  87. feld1[i] = feld[i];
  88. feld2[i] = feld[i];
  89. feld3[i] = feld[i];
  90. feld4[i] = feld[i];
  91. }
  92. }
  93.  
  94. static public void erzeugen(int[] feld, int max)
  95. {
  96. Random r = new Random();
  97. for(int i = 0; i < feld.length;++i)
  98. {
  99. feld[i] = r.nextInt(max)+1;
  100. }
  101. }
  102.  
  103. static public void ausgeben(int[] feld)
  104. {
  105. for(int i = 0; i < feld.length;++i)
  106. {
  107. System.out.print(feld[i] + " ");
  108. }
  109. System.out.println();
  110. }
  111.  
  112. static boolean getauscht;
  113. static public void Bubblesort(int[] feld)
  114. {
  115. int ver = 0;
  116. int t = 0;
  117. int j = feld.length-1;
  118. do
  119. {
  120. getauscht = false;
  121. for(int i = 0; i <= j-1; ++i)
  122. {
  123. if(feld[i] > feld[i+1])
  124. {
  125. swap(feld,i,i+1);
  126. t+=3;
  127. getauscht = true;
  128. }
  129. ++ver;
  130. }
  131. j -= 1;
  132. }while(getauscht == true);
  133. System.out.println("Es wurde : " + t + " mal getauscht und");
  134. System.out.println("Es wurde : " + ver + " mal verglichen");
  135. System.out.println();
  136. }
  137.  
  138. public static void swap(int[] feld1, int a, int b)
  139. {
  140. int temp = feld1[a];
  141. feld1[a] = feld1[b];
  142. feld1[b] = temp;
  143. }
  144.  
  145. static public void insertionsort(int[] feld)
  146. {
  147. int ver = 0;
  148. int t = 0;
  149. for(int i = 1; i < feld.length;++i)
  150. {
  151. int temp = feld[i];
  152. t++;
  153. int j = i-1;
  154. while(j>=0 && feld[j] > temp)
  155. {
  156. feld[j+1] = feld[j];
  157. t++;
  158. --j;
  159. }
  160. ver++;
  161. feld[j+1] = temp;
  162. t++;
  163. }
  164. System.out.println("Es wurde : " + t + " mal getauscht und");
  165. System.out.println("Es wurde : " + ver + " mal verglichen");
  166. System.out.println();
  167. }
  168.  
  169. static int verSelection = 0;
  170. public static void selectionsort(int[] feld)
  171. {
  172. int t = 0;
  173. for(int i = 0; i < feld.length-1; ++i)
  174. {
  175. int min = minipos(feld,i);
  176. swap(feld,i,min);
  177. t += 3;
  178. }
  179. System.out.println("Es wurde : " + t + " mal getauscht und");
  180. System.out.println("Es wurde : " + verSelection + " mal verglichen");
  181. System.out.println();
  182. }
  183.  
  184. public static int minipos(int[] feld,int ab)
  185. {
  186. int minIndex = ab;
  187. for (int i = ab+1; i<feld.length; i++)
  188. {
  189. if (feld[i]<feld[minIndex])
  190. {
  191. minIndex=i;
  192. verSelection++;
  193. }
  194.  
  195. }
  196. return minIndex;
  197. }
  198.  
  199. static int verglichenQuicksort = 0;
  200. static int getauschtQuicksort = 0;
  201. public static void quicksort(int l, int r, int[] arr)
  202. {
  203. int q;
  204. if(l < r)
  205. {
  206. verglichenQuicksort ++;
  207. q = partition(l,r,arr);
  208. quicksort(l,q,arr);
  209. quicksort(q+1,r,arr);
  210.  
  211. }
  212.  
  213. }
  214.  
  215. public static int partition(int l,int r, int[]arr)
  216. {
  217. int i,j,x = arr[(l+r)/2];
  218. i = l-1;
  219. j = r+1;
  220. while(true)
  221. {
  222. do
  223. {
  224. i++;
  225. verglichenQuicksort ++;
  226. }while(arr[i]<x);
  227.  
  228. do
  229. {
  230. j--;
  231. verglichenQuicksort ++;
  232.  
  233. }while(arr[j]>x);
  234.  
  235. if(i < j)
  236. {
  237. int k = arr[i];
  238. arr[i] = arr[j];
  239. arr[j] = k;
  240. getauschtQuicksort += 3;
  241. verglichenQuicksort ++;
  242. }
  243. else
  244. {
  245. return j;
  246. }
  247. }
  248. }
  249.  
  250. static void sort(int[] array, int l, int r)
  251. {
  252. if (l < r) {
  253. // select pivot element (left-most)
  254. int pivot = array[l];
  255. // partition and shuffle around pivot
  256. int i = l;
  257. int j = r;
  258. while (i < j) {
  259. // move right to avoid pivot element
  260. i += 1;
  261. // scan right: find elements greater than pivot
  262. while (i <= r && array[i] < pivot) {
  263. i += 1;
  264. }
  265. // scan left: find elements smaller than pivot
  266. while (j >= l && array[j] > pivot) {
  267. j -= 1;
  268. }
  269. if (i <= r && i < j) {
  270. // swap around pivot
  271. swapq(array, i, j);
  272. }
  273. }
  274. // put pivot in correct place
  275. swapq(array, l, j);
  276. // sort partitions
  277. sort(array, l, j - 1);
  278. sort(array, j + 1, r);
  279. }
  280. }
  281.  
  282. /**
  283. * Swap elements at indexes {@code i} and {@code j}
  284. * in the give array
  285. *
  286. * @param array
  287. * @param i
  288. * @param j
  289. */
  290. static void swapq(int[] array, int i, int j)
  291. {
  292. if (i >= 0 && j >= 0 && i < array.length && j < array.length) {
  293. int tmp = array[i];
  294. array[i] = array[j];
  295. array[j] = tmp;
  296. }
  297. }
  298.  
  299.  
  300. static public void QuicksortTextAusgeben()
  301. {
  302. System.out.println("Es wurde : " + getauschtQuicksort + " mal getauscht und");
  303. System.out.println("Es wurde : " + verglichenQuicksort + " mal verglichen");
  304. System.out.println();
  305. }
  306.  
  307.  
  308. //String Methoden
  309.  
  310. static String allowedChars ="0123456789abcdefghijklmnopqrstuvwxyz";
  311.  
  312. private static String generateRandomString(String allowedChars, Random random, int laenge)
  313. {
  314. int max = allowedChars.length();
  315. StringBuffer buffer = new StringBuffer();
  316. for (int i=0; i<laenge; i++)
  317. {
  318. int value = random.nextInt(max);
  319. buffer.append(allowedChars.charAt(value));
  320. }
  321. return buffer.toString();
  322. }
  323.  
  324. static public void erzeugen(int stringlaenge,String[] arr)
  325. {
  326. Random random = new Random();
  327. for (int i=0; i<arr.length; i++)
  328. {
  329. arr[i] = generateRandomString(allowedChars, random, stringlaenge);
  330. }
  331. }
  332.  
  333. static public void kopieren(String[] arr, String[] arr1, String[] arr2, String[] arr3)
  334. {
  335. for(int i = 0; i < arr.length; ++i)
  336. {
  337. arr1[i] = arr[i];
  338. arr2[i] = arr[i];
  339. arr3[i] = arr[i];
  340. }
  341. }
  342.  
  343. static public void ausgeben(String[] arr)
  344. {
  345. for(int i = 0; i < arr.length;++i)
  346. {
  347. System.out.print(arr[i] + " ");
  348. }
  349. System.out.println();
  350. }
  351.  
  352. static boolean getauscht1;
  353. static public void Bubblesort(String[] arr)
  354. {
  355. int ver = 0;
  356. int op = 0;
  357. int j = arr.length-1;
  358. do
  359. {
  360. getauscht1 = false;
  361. for(int i = 0; i <= j-1; ++i)
  362. {
  363. if(arr[i].compareTo(arr[i+1]) > 0 )
  364. {
  365. swap(arr,i,i+1);
  366. op +=3;
  367. getauscht1 = true;
  368. ver++;
  369. }
  370. }
  371. j -= 1;
  372. }while(getauscht1 == true);
  373. }
  374.  
  375. public static void swap(String[] arr, int a, int b)
  376. {
  377. String temp = arr[a];
  378. arr[a] = arr[b];
  379. arr[b] = temp;
  380. }
  381.  
  382. static public void insertionsort(String[] arr)
  383. {
  384. int ver = 0;
  385. int op = 0;
  386. for(int i = 1; i < arr.length;++i)
  387. {
  388. String temp = arr[i];
  389. op++;
  390. int j = i-1;
  391. while(j>=0 && arr[j].compareTo(temp) > 0)
  392. {
  393. arr[j+1] = arr[j];
  394. op++;
  395. --j;
  396. ver++;
  397. }
  398. arr[j+1] = temp;
  399. op++;
  400. }
  401. }
  402.  
  403. static int opselSt = 0;
  404. static int verselSt = 0;
  405. public static void selectionsort(String[] arr)
  406. {
  407. for(int i = 0; i < arr.length-1; ++i)
  408. {
  409. int min = minipos(arr,i);
  410. {
  411. swap(arr,i,min);
  412. opselSt+= 3;
  413. }
  414.  
  415. }
  416. }
  417.  
  418. public static int minipos(String[] arr,int ab)
  419. {
  420. int minIndex = ab;
  421. opselSt ++;
  422. for (int i = ab+1; i<arr.length; i++)
  423. {
  424. if (arr[i].compareTo(arr[minIndex]) < 0)
  425. {
  426. minIndex=i;
  427. opselSt+=2;
  428. }
  429. }
  430. return minIndex;
  431. }
  432. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement