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

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

排序算法(模板)类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 初级排序算法 排序算法关注的主要是重新排列数组元素,其中每个元素都有一个主键。排序算法是将所有元素主键按某种方...
    深度沉迷学习阅读 1,435评论 0 1
  • 数据结构与算法--排序之冒泡、选择、插入、希尔 我们关注的主要对象是重新排列数组元素的算法,每个元素都有一个主键,...
    sunhaiyu阅读 1,158评论 2 12
  • 一. 写在前面 要学习算法,“排序”是一个回避不了的重要话题,在分析完并查集算法和常用数据结构之后,今天我们终于可...
    Leesper阅读 2,548评论 0 40
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,438评论 1 14
  • 王嫱(新韵) 塞上平沙落雁, 汉家送女安邦。 留君无计意彷徨, 中夜颓然北望。 人誉百年安定, 谁怜一路凄凉。 何...
    澧水幽兰阅读 382评论 0 7