Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1.  
  2. public class SelectionSort {
  3.  
  4. public static void main(String[] args) {
  5.  
  6. int[] arr = { 4, 1, 7, 5, 2, 4, 3, 7, 5, 86, 8, 3, 5, 2 };
  7. selectionSort(arr);
  8. print(arr);
  9. }
  10.  
  11. static void selectionSort(int[] arr) {
  12.  
  13. for (int x = 0; x < arr.length / 2; x++) {
  14. int minIdx = x;
  15. int maxIdx = x;
  16. // swap min with first
  17. for (int i = x + 1; i < arr.length - x; i++) {
  18. if (arr[i] < arr[minIdx]) {
  19. minIdx = i;
  20. }
  21. }
  22. int temp = arr[x];
  23. arr[x] = arr[minIdx];
  24. arr[minIdx] = temp;
  25. // swap max with last
  26. for (int i = x + 1; i < arr.length - x; i++) {
  27. if (arr[i] > arr[maxIdx]) {
  28. maxIdx = i;
  29. }
  30. temp = arr[arr.length - 1 - x];
  31. arr[arr.length - 1 - x] = arr[maxIdx];
  32. arr[maxIdx] = temp;
  33. }
  34. }
  35. }
  36.  
  37. static void print(int[] arr) {
  38. for (int i = 0; i < arr.length; i++) {
  39. System.out.print(arr[i] + " ");
  40. }
  41. System.out.println();
  42. }
  43. }
  44. //трябваше да направим втори цикъл който да е за максималната стойност защото както беше преди задачата след като сменим стойноста на minIdx вече за maxIdx е различно и за това не подреждаше
  45. // правилно стойностите
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement