Пример #1
0
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]);

    }
    
}
Пример #2
0
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;
    }
}
Пример #3
0
    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; 

    }
Пример #4
0
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);
}