Task 2 : Basic computation in a MatLab. Creating MatLab Function (10 pts) There
ID: 3888171 • Letter: T
Question
Task 2: Basic computation in a MatLab. Creating MatLab Function (10 pts)
There are different sorting algorithms available to sort an array.
Create and submit a MatLab function called bubble_sort.m according to the specification given. Include this function in your zip archive.
General Description:
This function takes an array of numbers and sorts them in ascending order (smallest or most negative to largest or most positive).
Calling Syntax:
Input Arguments:
unsorted_list array, N-element array of numbers
Return Arguments:
sorted_list array, N-element array of numbers sorted in ascending order
Additional Specifications and Notes
This function must NOT use any built-in MatLab functions for sorting. You are to implement this using flow control statements along with comparison and assignment primitives.
Use the Bubble Sort Algorithm for sorting. You can find it at wikipedia.org.
The sorted list should be of the same “shape” as the unsorted list. That is, if the
input is Nx1, then the output must be Nx1, not 1xN.
For this task, you have to verify the type of the input within your code, i.e., check
the validity that the input is in a correct format (that the input array contains only numbers).
Explanation / Answer
function sorted_list = bubble_sort(unsorted_list)
tf = isnumeric(unsorted_list); % check the validity that the input is in a correct format (that the input array contains only numbers , (it is not inbuilt lib for sorting )).
if tf==0
disp("Not a valid format of unsorted_list ");
else
[m,n]=size(unsorted_list);
if m==1 %row vector
%bubble sort
for i=1:n-1
for j=1:n-1-i
if unsorted_list(1,j) > unsorted_list(1,j+1)
temp=unsorted_list(1,j);
unsorted_list(1,j)=unsorted_list(1,j+1);
unsorted_list(1,j+1)=temp;
end
end
end
else %column vector to row vector and then sort
unsorted_list=unsorted_list';
[m,n]=size(unsorted_list);
for i=1:n-1
for j=1:n-1-i
if unsorted_list(1,j) > unsorted_list(1,j+1)
temp=unsorted_list(1,j);
unsorted_list(1,j)=unsorted_list(1,j+1);
unsorted_list(1,j+1)=temp;
end
end
end
unsorted_list=unsorted_list';
end
end
sorted_list=unsorted_list; %here answer in sorted_list and if not valid input then answer will be same input list
end
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.