Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
11th Edition
ISBN: 9780134670942
Author: Y. Daniel Liang
Publisher: PEARSON
bartleby

Concept explainers

Question
Book Icon
Chapter 23, Problem 23.1PE
Program Plan Intro

Generic bubble sort

Program Plan:

  • Import the required packages.
  • Create a class “Sorting”:
    • Method to sort the numbers gets defined.
    • Call the method bubble sort that implements the comparable interface.
    • Method to sort the string given.
    • Call the method bubble sort to implement the comparator interface.
    • Loop that iterates to sort the values of the list.
    • Perform swap operation by comparing the list.
    • Return the sorted list.
  • Define the main method
    • Initialize the list that needs to be sorted.
    • Call the bubble sort.
    • Display the sorted list.
    • Initialize list that contain strings.
    • Call the method bubble sort.
    • Display the sorted list.

Expert Solution & Answer
Check Mark
Program Description Answer

The below program is perform a generic bubble sort.

Explanation of Solution

Program:

//define the required packages

import java.util.Comparator;

//define the class sorting

public class Sorting

{

//method to sort the numbers

public static <E extends Comparable<E>> void bubbleSort(E[] list)

{

//perform bubble sort

bubbleSort(list, (e1, e2) -> ((Comparable<E>)e1).compareTo(e2));

}

//method definition

public static <E> void bubbleSort(E[] list,

Comparator<? super E> comparator)

{

//declare the necessary variables

boolean needNextPass = true;

/*loop that iterates to sort the elements of the array*/

for (int k = 1; k < list.length && needNextPass; k++)

{

/*condition when the given array is sorted*/

needNextPass = false;

for (int i = 0; i < list.length - k; i++)

{

/*condition to validate the elements*/

if (comparator.compare(list[i], list[i + 1]) > 0)

{

// swap the elements

E temp = list[i];

//assign values

list[i] = list[i + 1];

//assign the value

list[i + 1] = temp;

/*assign value for the next path*/

needNextPass = true;

}

}

}

}

//define the values

public static void main(String[] args)

{

//define anew list

Integer[] new_list = {-8, 10, 5, 7, 14, 12, -12, 31, 141, 102};

//call the method bubble sort

bubbleSort(new_list);

//loop that iterates to sort the list

for (int i = 0; i < new_list.length; i++)

{

//display the list

System.out.print(new_list[i] + " ");

}

System.out.println();

//define anew list

String[] new_list1 = {"Sorting", "Data", "Fun", "Happy", "Programming", "Nice"};

//call bubble sort

bubbleSort(new_list1, (s1, s2) -> s1.compareToIgnoreCase(s2));

//loop that iterates to sort the values

for (int i = 0; i < new_list1.length; i++)

{

//display the list

System.out.print(new_list1[i] + " ");

}

}

}

Sample Output

-12 -8 5 7 10 12 14 31 102 141

Data Fun Happy Nice Programming Sorting

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Hands-On Assignments Part II Assignment 1-5: Querying the DoGood Donor Database Review the DoGood Donor data by writing and running SQL statements to perform the following tasks: 1. List each donor who has made a pledge and indicated a single lump sum payment. Include first name, last name, pledge date, and pledge amount. 2. List each donor who has made a pledge and indicated monthly payments over one year. Include first name, last name, pledge date, and pledge amount. Also, display the monthly payment amount. (Equal monthly payments are made for all pledges paid in monthly payments.) 3. Display an unduplicated list of projects (ID and name) that have pledges committed. Don't display all projects defined; list only those that have pledges assigned. 4. Display the number of pledges made by each donor. Include the donor ID, first name, last name, and number of pledges. 5. Display all pledges made before March 8, 2012. Include all column data from the DD PLEDGE table.
Write a FancyCar class to support basic operations such as drive, add gas, honk horn, and start engine. FancyCar.java is provided with method stubs. Follow each step to gradually complete all methods. Note: This program is designed for incremental development. Complete each step and submit for grading before starting the next step. Only a portion of tests pass after each step but confirm progress. The main() method includes basic method calls. Add statements in main() as methods are completed to support development mode testing. Step 0. Declare private fields for miles driven as shown on the odometer (int), gallons of gas in tank (double), miles per gallon or MPG (double), driving capacity (double), and car model (String). Note the provided final variable indicates the gas tank capacity of 14.0 gallons. Step 1 (2 pts). 1) Complete the default constructor by initializing the odometer to five miles, tank is full of gas, miles per gallon is 24.0, and the model is "Old Clunker". 2)…
Find the error: daily_sales = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] days_of_week = ['Sunday', 'Monday', 'Tuesday',                     'Wednesday', 'Thursday', 'Friday',                     'Saturday'] for i in range(7):         daily_sales[i] = float(input('Enter the sales for ' \                                      + day_of_week[i] + ': ')
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning