美文网首页
排序算法(1)-- 初级排序

排序算法(1)-- 初级排序

作者: deBroglie | 来源:发表于2018-09-25 22:00 被阅读0次

    问题描述:重新排列数组元素。其中每个元素都有一个主键,排序后索引较大的主键大于索引较小的主键。

    排序算法(模板)类C++11代码模板

    #include <cassert>
    #include <iostream>
    #include <vector>
    #include <sstream>
    #include <string>
    
    template<typename T>
    class Example {
    public:
        void sort(std::vector<T>& a) {/**各排序算法具体的实现代码**/}
        /*比较大小*/
        bool less(T v, T w) {return v < w;}
        /*对换方法*/
        void swap(std::vector<T>& a, int i, int j) {
            T tmp = a[i]; a[i] = a[j]; a[j] = tmp; 
        }
        /*打印结果*/
        void show(std::vector<T>& a) {
            for (int i=0; i<a.length(); ++i)
                std::cout << a[i] << " ";
            std::cout << std::endl;
        }
        /*排序判断*/
        bool isSorted(std::vector<T>& a) {
            for (int i=0; i<a.length(); ++i)
                if (less(a[i], a[i-1])) return false;
            return true;
        }
        /*测试方法*/
        void test() {
            const int MAX_CHAR_N = 1024;
            char buf[MAX_CHAR_N];
            std::cin.getline(buf, MAX_CHAR_N);
            std::istringstream iss(buf);        
            std::vector<std::string> test_list(0);
            std::string s;
            while (std::getline(iss, s, ' ')) {
                std::cout << s << std::endl;
                test_list.push_back(s);
            }
            sort(test_list);
            assert(isSorted(test_list));
            show(test_list);
        }
    }
    

    排序算法类Python3代码模板

    class Example(object):
    
        def __init__():
            pass
        
        def sort(a):
            # 各排序算法具体的实现代码
            return a
    
        def less(v, w):
            return v < w
    
    #    def swap(a, i, j):
    #        # 事实上,这个swap方法不应该被使用,而应该直接将如下行在sort()中执行
    #        a[i], a[j] = a[j], a[i]
    #        return a
    
        def show(a):
            print(*a)
    
        def isSorted(a):
            return all(a[i] <= a[i+1] for i in range(len(a)-1))
    
        def test():
            iss = input()
            test_list = iss.split(' ') 
            test_list = sort(test_list);
            assert isSorted(test_list);
            show(test_list);
    

    相关文章

      网友评论

          本文标题:排序算法(1)-- 初级排序

          本文链接:https://www.haomeiwen.com/subject/exokoftx.html