the while loop traverses the list backwardsguided by two conditionsfirstif search_index then it means that there are more elements in the sorted portion of the listsecondfor the while loop to rununsorted_list[search_index- must be greater than the insert_value the unsorted_list[search_index- array will do either of the following thingspoint to the element just before the unsorted_list[search_indexbefore the while loop is executed the first time point to one element before unsorted_list[search_index- after the while loop has been run the first time in our list examplethe while loop will be executed because in the body of the while loopthe element at unsorted_list[search_index- is stored at unsorted_list[search_indexsearch_index - moves the list traversal backwards till it bears the value our list now looks like thisafter the while loop exitsthe last known position of search_index (which in this case is now helps us to know where to insert insert_value