void sort_nums(int* number_array, size_t number_array_size) { if (number_array_size == 0) return; ///5, 7, 8, 1, 7, 10 ///5, 7, 8, 1, 7, 10 ///^--------------^ find the minimum in this range /// ^ minimum ///1, 7, 8, 5, 7, 10 /// ^-----------^ find the minimum in this range /// .... for (int i = 0; i < number_array_size - 1; ++i) { ///loop through everything until the last item ///pick the item at i ///find the item in the range [i,end), that is the minimum size_t minimum_value_index = i + find_min_index(number_array + i, number_array_size - i); swap_ints(number_array+i, number_array+minimum_value_index); //fprintf(stdout, "%d\n", number_array[i]); } }
void sort(int array[], int size) { int min_index, temp, i; for(i = 0; i < size; i++) { min_index = find_min_index(array, i, size); temp = array[min_index]; array[min_index] = array[i]; array[i] = temp; } }
bool search(vector<int>& nums, int target) { int min_index = find_min_index(nums); printf("%d\n", min_index); int target_index = -1; if (min_index == 0) { target_index = range_binary_search(nums, 0, nums.size() - 1, target); } else { if (nums[0] <= target && target <= nums[min_index - 1]) { target_index = range_binary_search(nums, 0, min_index - 1, target); } else if (nums[min_index] <= target && target <= nums[nums.size() - 1]) { target_index = range_binary_search(nums, min_index, nums.size() - 1, target); } } return target_index != -1; }
int main(){ Item* listptr; int i; int minidx; listptr = new_item(0); // Test insert_back() for (i=1; i < 6; i++){ listptr=insert_back(listptr, 10*i - 5); } for (i=0; i < 6; i++){ printf("i %d Item %d\n", i, get(listptr, i)); } printf("\n"); // Test set() for (i=0; i < 7; i++){ set(listptr, i, 7); } for (i=0; i < 6; i++){ printf("i %d Item %d\n", i, get(listptr, i)); } printf("\n"); // Test remove_item(). Should see two consecutive 2's in beginning. set(listptr, 0, 2); set(listptr, 2, 2); remove_item(listptr, 7); for (i=0; i < 5; i++){ printf("i %d Item %d\n", i, get(listptr, i)); } printf("\n"); // Test get_index() printf("Index of the first 2 is: %d\n", get_index(listptr, 2)); printf("Index of the first 7 is: %d\n", get_index(listptr, 7)); printf("Index of a non-existent element (10) is: : %d\n", get_index(listptr, 10)); minidx = find_min_index(listptr); printf("min index %d min value %d\n", minidx, get(listptr, minidx) ); free_all(listptr); }