算法导论--2.2分析算法

练习:

  2-2-2 选择排序

  

#include<iostream>
#include<vector>


void print_element(std::vector<int> &coll){
    for(auto i: coll)
        std::cout << i << " ";
    std::cout << std::endl;
}

void select_sort(std::vector<int> &vi){
    for(int i = 0; i < (int) vi.size(); ++i){
        int min_index = i;
        for(int k = i + 1; k < (int) vi.size(); ++k){
            if(vi[k] < vi[min_index]) min_index = k;
        }
        int swap = vi[min_index];
        vi[min_index] = vi[i];
        vi[i] = swap;
    }
}


int main(void){
    std::vector<int> vi;
    int num;
    while(std::cin>>num){
        vi.push_back(num);
    }
    print_element(vi);
    select_sort(vi);
    print_element(vi);
    return 0;
}

输出结果 E:\coding\Algorithms
>review.exe 9 8 7 6 5 4 3 2 1 eof 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9

猜你喜欢

转载自www.cnblogs.com/fengyucoding/p/10473752.html