Part2--排序算法类模板
算法第四版第二章排序需要复用的代码的模板。
其中 algs4 是算法这本书作者自己写的一个类库,包含了一些常用的简单的方法。
ps : less()比较大小的方法
exch()交换两个变量的值的方法
show()向控制台输出结果的方法
isSorted()测试数组元素是否有序的方法
1 import java.util.Scanner; 2 3 import edu.princeton.cs.algs4.In; 4 5 public class Example { 6 public static void sort(Comparable[] a){ 7 } 8 private static boolean less(Comparable v, Comparable w) { 9 return v.compareTo(w) < 0; 10 } 11 private static void exch(Comparable[] a, int i, int j) { 12 Comparable t = a[i]; 13 a[i] = a[j]; 14 a[j] = t; 15 } 16 private static void show(Comparable[] a) { 17 for (int i = 0; i < a.length; i++) { 18 System.out.print(a[i] + ""); 19 System.out.println(); 20 } 21 } 22 private static boolean isSorted(Comparable[] a) { 23 for (int i = 0; i < a.length; i++) { 24 if(less(a[i], a[i-1])) 25 return false; 26 } 27 return true; 28 } 29 public static void main(String[] args) { 30 String[] a = In.readStrings(); 31 //sort(a); 32 assert isSorted(a); 33 show(a); 34 } 35 }
转载于:https://www.cnblogs.com/stitchZsx/p/9846704.html
Part2--排序算法类模板相关推荐
- 织梦站内选择文件夹和图片文件排序后台模板管理按名称排序
织梦站内选择图片排序是直接read()读取直接输出,如果我们同一时间上传了多个图片,在没有经过排序的情况下,我们去选择图片很难快速分辨哪个是刚刚上传的,解决方法是读取该目录的文件列表,用"文 ...
- C++走向远洋——61(项目一、排序函数模板)
*/* Copyright (c) 2016,烟台大学计算机与控制工程学院* All rights reserved.* 文件名:text.cpp* 作者:常轩* 微信公众号:Worldhello* ...
- 排序算法模板(C语言版)
1.快速排序 //By LYLtimvoid swap(int *a, int *b) {int t = *a;*a = *b;*b = t; }void QSort(int l, int r) {i ...
- 9个元素换6次达到排序序列_面试题精选(排序算法类)c/c++版 上篇
1-1排序算法专题 0 常见排序算法总结 基础排序算法: 冒泡排序.选择排序.插入排序.归并排序.希尔排序.快速排序.堆排序 建议看不懂原理说明或图示时请看代码. 1. 冒泡排序 1.1 基本思想 冒 ...
- 面试题精选(排序算法类)c/c++版 上篇
1-1排序算法专题 0 常见排序算法总结 基础排序算法: 冒泡排序.选择排序.插入排序.归并排序.希尔排序.快速排序.堆排序 建议看不懂原理说明或图示时请看代码. 1. 冒泡排序 1.1 基本思想 冒 ...
- LUOGU 3089 后缀排序(模板)
传送门 解题思路 这是一个神奇的算法,sa[i]表示排名第i为的元素是啥,rk[i]表示第i个元素排名是啥.然后使用基数排序+倍增的思想去处理.主要是参考的这位大佬的博客(https://www.cn ...
- 【算法入门图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树
✅作者简介:热爱后端语言的大学生,CSDN内容合伙人 ✨精品专栏:C++面向对象
- 排序---初级排序算法(选择排序、插入排序和希尔排序)
写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera Algorithms Part1&2 本文 ...
- C++ 函数模板和排序的函数模板——学习笔记
我们在使用重载函数时,只是使用了函数名,而函数体还是得分别定义,在C++中函数模板为我们很好的解决了这个问题. 1.函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函 ...
- [设计模式](十):策略模式(Strategy)与模板模式(Template)详解及二者间区别介绍(两种父子类行为模式)
这次要说的两个模式,都是行为模式,指的是在程序运行过程中,经过经验总结的行为开发模式. 其次,行为模式再按照类与类间关系的划分,可以划分为四个类型:父子关系(2种).独立类间关系(4种).类自身状态( ...
最新文章
- 搭建hbase1.2.5完全分布式集群
- 接受返回值 server sql_SQL,何必在忆之一(基础篇)
- 成为数据科学家、人工智能和机器学习工程师的自学之路
- Python 3.3.2 中文版
- Java知识整理——垃圾回收
- LeetCode 676. 实现一个魔法字典(哈希)
- 【ElasticSearch】Es 源码之 MonitorService 源码解读
- 考研南邮和杨大计算机,江苏省这4所“非211”低调有实力,从不争名次,毕业生颇受欢迎...
- 将CString转换成string ...
- CorelDRAWX4的VBA插件开发(十三)一键转曲(转全部页面)
- Java面试题全集(上)
- a10 amd 安装黑苹果_分享黑苹果安装经验
- Chapter 2 (Discrete Random Variables): Probability mass functions (PMF 分布列)
- Linux系统如何优化
- html5 游戏 动画设计,11款效果惊艳的HTML5动画应用
- 了解如何定义定义变量和调用函数
- Mysql数据库磁盘扩容
- 上班划水神器:一个可以在控制台玩斗地主项目!
- flash高科技php网站源码下载,Flash小游戏PHP源码
- 【CSDN英雄会】沪江徐宜生:掌握工具使用技巧,是提高工作效率的最佳途径