AP CSA 4.15 Debugging: The Swap That Duplicates

Unit 4: Data Collections · Lesson 4.15 · Debugging

The Swap That Duplicates

Sorting Algorithms. This is not a blank editor: it is someone else's attempt. Find what is wrong, fix it, and submit to be graded against hidden test cases.

Why debugging is its own skill

Selection sort is correct in outline and wrong in two details, and the output tells you exactly which: values start disappearing and other values appear twice. A swap that forgets to save a value overwrites it, and the array ends up with copies where the original data used to be.

What is wrong with it

  1. The swap assigns in the wrong order and never saves the displaced value, so one element is overwritten and another is duplicated. Use a temporary variable to swap properly.
  2. The search for the smallest remaining element starts at index 0 every pass instead of at the current position, so it keeps reselecting elements that are already sorted. Start the inner scan at i.
  3. The printing loop is correct.

The program reads

A count, then that many integers.

The program should print

The values in increasing order, one per line.

Worked examples

These show what the FIXED program should print. There are more cases you cannot see, and they use different values, so patching around just these numbers will fail.

Example 1 input
5
5 2 9 1 7
Example 1 output
1
2
5
7
9
Example 2 input
3
3 2 1
Example 2 output
1
2
3

Your answer

Main.java

Input for the Run button

Run sends whatever is in the code box below, bugs and all, so you can see the crash or the wrong answer for yourself before you fix anything.


  

  

Stuck?

Hint 1

Trace the two swap lines with data[i] = 5 and data[minIndex] = 2. After the first line both slots hold 2. The second line copies 2 back onto itself. The 5 is gone from the array entirely, which is why duplicates appear.

Hint 2

This is the same swap bug as 2.1, now inside a sort where it is much harder to see. Any swap needs three statements and a temporary, every time.

Hint 3

Starting the inner scan at 0 means the sorted prefix is searched again on every pass. It does not corrupt the data on its own, but it is doing work that cannot help and it hides which region is still unsorted.

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]