算法(第4版)Robert Sedgewick 刷题 第一章(1)
/**
* @Description 颠倒数组排列顺序
* @author SEELE
* @date 2017年8月17日 上午10:56:17
* @action sortArr
*/
public static void sortArr() {
int[] b = new int[6];
int[] a = { 1, 2, 3, 4, 5, 6, 7 };
for (int i = 0; i < a.length / 2; i++) {
int temp = a[a.length - 1 - i];
a[a.length - 1 - i] = a[i];
a[i] = temp;
}
System.out.println(Arrays.toString(a));
} /**
* @Description 判读一个数是否是素数
* @author SEELE
* @date 2017年8月17日 上午11:00:02
* @action sushu
*/
public static void sushu() {
int N = 17;
if (N < 2) {
System.out.println("不是素数");
}
for (int i = 2; i * i <= N; i++) {
if (N % i == 0) {
System.out.println("不是素数");
return;
}
}
System.out.println("是素数");
} /**
* @Description 计算平方根,牛顿迭代法
* @author SEELE
* @date 2017年8月17日 上午11:16:17
* @action sqrt
* @param c
* @return
*/
public static double sqrt(double c) {
if (c < 0) {
return Double.NaN;
}
double err = 1e-15;
double t = c;
while (Math.abs(t - c / t) > err * t) {
t = (c / t + t) / 2.0;
}
return t;
} /**
* @Description (自写)二分查找,先做一个从小到大的数组排序
* @author SEELE
* @date 2017年8月17日 下午2:33:52
* @action erfenfind
*/
public static void erfenfind() {
int[] a = { 54, 54, 56, 56, 78, 8, 3232, 56, 546, 546, 46, 7854, 12, 3255, 58, 678, 585, 23, 45, 3, 6, 8, 89,
6 };
System.out.println(Arrays.toString(a));
int find = 8;
Arrays.sort(a);
System.out.println(Arrays.toString(a));
int lo = 0;
int hi = a.length - 1;
while (lo <= hi) {
int mid = lo + (hi - lo) / 2;
if (find > a[mid]) {
lo = mid + 1;
} else if (find < a[mid]) {
hi = mid - 1;
} else {
System.out.println(mid + "---" + a[mid]);
break;
}
}
} /**
* 将一个正整数的转换成二进制,并已字符串打印出来
*/
public static void binaryString() {
long N = 5646753274687L;
String s = "";
for (long n = N; n > 0; n /= 2)
s = (n % 2) + s;
System.out.println(s);
} /**
* 1.1.13 编写一段代码,打印出一个M 行N 列的二维数组的转置(交换行和列)。
*/
public static void MNtoNM() {
int b = 0;
int m = 10;
int n = 3;
int[][] a = new int[m][n];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
a[i][j] = b;
b++;
}
}
for (int[] is : a) {
for (int i : is) {
System.out.print(i+" ");
}
System.out.println();
}
int[][] c = new int[n][m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
c[i][j] = a[j][i];
}
}
System.out.println("-----------分割------------");
for (int[] is : c) {
for (int i : is) {
System.out.print(i+" ");
}
System.out.println();
}
}
算法(第4版)Robert Sedgewick 刷题 第一章(1)的更多相关文章
- 算法(第4版) (Robert Sedgewick / Kevin Wayne 著)
第1章 基础 第2章 排序 第3章 查找 第4章 图 第5章 字符串 第1章 基础 public class Bag<T> : IEnumerable<T> { ]; ; pu ...
- 周刷题第一期总结(two sum and two numbers)
由于深深的知道自己是事件驱动型的人,一直想补强自己的薄弱环节算法,却完全不知道从哪里入手.所以只能采用最笨的办法,刷题.从刷题中遇到问题就解决问题,最后可能多多少少也能提高一下自己的渣算法吧. 暂时的 ...
- python在leecode刷题-第一题和第七题
class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] num ...
- 牛客SQL刷题第一趴——非技术入门基础篇
user_profile表: id device_id gender age university province 1 2138 male 21 北京大学 Beijing 2 3214 male ...
- 学习笔记(一)--->《Java 8编程官方参考教程(第9版).pdf》:第一章到六章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.违者本人不负法律责任.违法者自负一切法律责任. ...
- leetcode刷题第一日<两数和问题>
开始就用到了c++的哈希表是真的恶心,首先学习一波基础知识 https://blog.csdn.net/u010025211/article/details/46653519 下面放下大佬的代码 cl ...
- LeetCode刷题第一天
1 . 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用 ...
- 《数据结构与算法(C语言版)》严蔚敏 | 第五章 建立二叉树,并完成三/四种遍历算法
PS:所有的代码示例使用的都是这个图 2019-10-29 利用p126的算法5.3建立二叉树,并完成三种遍历算法 中序 后序 先序 #include<iostream> #include ...
- 《数据结构与算法(C语言版)》严蔚敏 | 第四章课本案例
//二叉树的顺序存储表示 #define MAXTSIZE 100 typedef TElemtype SqBiTree[MAXTSIZE]; SqBiTree bt; //二叉树的二叉链表存储表示 ...
随机推荐
- C# 篇基础知识4——.NET的基础概念
C#语言是与微软的.NET框架紧密地联系在一起的,而.NET框架是微软.NET战略的核心,为了更好的理解C#语言,我们必须了解一些.NET框架的基本知识..NET框架是为开发应用程序推出的一个编程平台 ...
- Django(十八)后台管理:列表页选项、编辑页选项、自定义后台页面
[参考]https://blog.csdn.net/u010132177/article/details/103814357 [参考]https://docs.djangoproject.com/zh ...
- 51nod 1099:任务执行顺序 贪心
1099 任务执行顺序 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 取消关注 有N个任务需要执行,第i个任务计算时占R[i]个空间,而后会释放一部分, ...
- ESX/ESXi 主机上的每个插槽中安装了多少内存
要确定在 ESX/ESXi 主机上的每个插槽中安装了多少内存,请执行以下操作: 1. 启动ssh服务 2. 登陆esxi主机查看 使用 SSH 客户端登录主机,以 root 用户身份运行以下命令之一: ...
- 赶在EW2020之前,FreeRTOS发布V10.3.0,将推出首个LTS版本
点击下载:FreeRTOSv10.3.0.exe 说明: 1.新版更新: (1)对于IAR For RISC-V进行支持,并且加强了对RISC-V内核芯片支持,做了多处修正. (2)对阿里平头哥CH2 ...
- es和数据类型
js=es+dom+bom,dom和bom前面已经讲完了 es是js的本体,是指数据类型,和对于数据的操作手段,他的版本更新得很快 这些功能不是html文件提供的,也不是浏览器提供的,即使脱离了dom ...
- linux 查看ip、用户、时间对应执行的命令
这个需要使用到history命令.可以加数字,返回最近执行的几条命令.如果不加数字会返回所有的历史命令. [root@localhost ~]# history 20 1015 rm stdin.lo ...
- tp5日志分表
/** * 记录网站日志 * * @return bool */ public function record() { // 组装数据 $log = self::$param; $log[self:: ...
- Vue父组件向子组件传值
父组件向子组件传值 组件实例定义方式,注意:一定要使用props属性来定义父组件传递过来的数据 <script> // 创建 Vue 实例,得到 ViewModel var vm = ne ...
- 059、Java中定义一个有参数无返回值的方法
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...