Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SelectionSort {
- public static void main(String[] args) {
- int[] arr = { 4, 1, 7, 5, 2, 4, 3, 7, 5, 86, 8, 3, 5, 2 };
- selectionSort(arr);
- print(arr);
- }
- static void selectionSort(int[] arr) {
- for (int x = 0; x < arr.length / 2; x++) {
- int minIdx = x;
- int maxIdx = x;
- // swap min with first
- for (int i = x + 1; i < arr.length - x; i++) {
- if (arr[i] < arr[minIdx]) {
- minIdx = i;
- }
- }
- int temp = arr[x];
- arr[x] = arr[minIdx];
- arr[minIdx] = temp;
- // swap max with last
- for (int i = x + 1; i < arr.length - x; i++) {
- if (arr[i] > arr[maxIdx]) {
- maxIdx = i;
- }
- temp = arr[arr.length - 1 - x];
- arr[arr.length - 1 - x] = arr[maxIdx];
- arr[maxIdx] = temp;
- }
- }
- }
- static void print(int[] arr) {
- for (int i = 0; i < arr.length; i++) {
- System.out.print(arr[i] + " ");
- }
- System.out.println();
- }
- }
- //трябваше да направим втори цикъл който да е за максималната стойност защото както беше преди задачата след като сменим стойноста на minIdx вече за maxIdx е различно и за това не подреждаше
- // правилно стойностите
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement