美文网首页
排序算法(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);

相关文章

  • 算法——初级排序算法

    最近,在通过《算法4》这本书来重新学习一下算法,从最初级的排序算法。初级的排序算法有3种:选择排序、插入排序、希尔...

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

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

  • (三)排序

    1 初级排序算法 排序算法关注的主要是重新排列数组元素,其中每个元素都有一个主键。排序算法是将所有元素主键按某种方...

  • 逻辑之美(2)_选择排序

    开篇 上篇我们好好聊了聊冒泡排序,这篇我们来聊聊另一种初级排序算法——选择排序 正文 选择排序的算法思路同样很简单...

  • 线性排序

    桶排序、计数排序、基数排序 一、线性排序算法介绍 1.线性排序算法包括桶排序、计数排序、基数排序。2.线性排序算法...

  • 《算法》-排序[初级排序算法]

    《算法》系列,是面向《算法》第四版这本书进行学习,会去除繁琐的文字叙述,会从以下两个方面去理解一个算法: 1、...

  • LeetCode大全

    1.常见排序算法: 常见的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、...

  • 『算法』之 初级排序算法总结

    本篇文章同时收录在我的个人博客:『算法』之 初级排序算法总结 选择排序 一种最简单的排序算法:首先,找到数组中最小...

  • 面试算法知识梳理(12) - 二叉树算法第二部分

    面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...

  • 面试算法知识梳理(13) - 二叉树算法第三部分

    面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...

网友评论

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

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