# coding: utf-8# # Sorting a list# ## Swapping# In order to sort a list, one of the most common operations to be done is swapping (exchanging) two elements.# Examine the function defined below, and...




# coding: utf-8













# # Sorting a list













# ## Swapping













# In order to sort a list, one of the most common operations to be done is swapping (exchanging) two elements.



# Examine the function defined below, and **run the code to define the function.**



#



# ##### Questions:



# * What is the name of the function? The name of the functions is Swap.



# * How many parameters does it have? It has 3 parameters. 'Items', 'i', and 'j'.























# Swaps two elements in the list named items



# at positions i and j.



def swap(items,i,j):






temp = items[i]






items[j] = items[i]






items[i] = temp























# Before running the code below, **predict the output**. Then run the code and see if you were correct.













# In[ ]:























myList = [5, 10, 15, 20, 25, 30]



swap(myList, 1, 4)



print(myList)























# Now **modify the above code** to swap the first and last elements of myList.













# ## Bubble sort













# We now define a `bubbleSort` function that does an in-place sort of the list called `items`.



#There is no need to return a new list, because the function actually changes the original list.



#**Run the code to define the function.** There will not be any output.













# In[ ]:























def bubbleSort(items):






fullySorted = False






while not fullySorted: #outer loop






print(items)






i = len(items) - 1 #len() gets length, start at end of list






fullySorted = True






while i > 0: #inner loop, stop at top of list






if items[i] < items[i-1]:="" #if="" two="" neighbouring="" items="" out="" of="">






swap(items,i,i-1) #use our swap function to swap them






fullySorted = False #list may not yet be sorted






i = i - 1 #decrement i























# #### Testing bubble sort



# If you want to see some output, you need to call the function, and pass in an argument to be used as the list `items`.



#**Run the code below** to call the function.













# In[ ]:























otherList = [395,2,-4,20,47,200,-50,-12] #a list for testing



print('Before sorting:', otherList)



bubbleSort(otherList)



print('After sorting:', otherList)























# ##### Questions:



# * What are the contents of `otherList` after a single iteration of the outer loop of `bubbleSort`?



# * How many iterations of the outer loop happen when sorting `otherList`?



# * Then run both blocks of code (the def block and the test block) again.



# * Examine the output to answer the question about iterations.



# * Now create a new list below, with 8 elements, called `yourList` -- a list where you think you can get `bubbleSort` to stop early (do fewer iterations). How many times did the outer loop run for `yourList`?













# In[ ]:























yourList = [] #fill in this list with 8 elements separated by commas



print('Before sorting:', yourList)



bubbleSort(yourList)



print('After sorting:', yourList)























# ## Selection sort













# Recall selection sort from class. You will write your own version of the selection sort function.



#Remember, we already defined a `swap` function at the beginning of the notebook.



#Below is another function you will need for selection sort, called `minIndexAfter`.



#This function returns the index of the minimum element in `items` between `startPos` and the end of the list.



#**Run the code** to define the function.













# In[ ]:























def minIndexAfter(items, startPos):






minIndex = startPos






i = startPos + 1






while(i <>






if(items[i] <>






minIndex = i






i = i + 1






return minIndex























# Define a function called `selectionSort` below. In the body of the function, you will need to call the `swap` function and the `minIndexAfter` function.













# In[ ]:























#define selectionSort here:























# Use the following code to test your `selectionSort` function.













# In[ ]:























items = [395,2,-4,20,47,200,-50,-12]



selectionSort(items)



print(items)
Mar 02, 2023
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here