【算法(Algorithms)第4版 练习 1.3.20】教程文章相关的互联网学习教程文章

go算法练习【代码】

冒泡排序:package mainimport("fmt" )// 1, 38, 4, 5, 10 // 1, 4, 38, 5, 10 // 1, 4, 5, 38, 10 // 1, 4, 5, 10, 38 //冒泡排序 func bubble_sort(a []int) {for i := len(a)-1; i > 0; i-- {for j := 0; j < i; j++ {if a[j] > a[j+1] {a[j], a[j+1] = a[j+1], a[j]}}} }func main() {a := []int{38, 1, 4, 5, 10}bubble_sort(a) fmt.Println(a) } 选择排序:package mainimport("fmt" )//38, 1, 4, 5, 10 //1, 38, 4, ...

算法(Algorithms)第4版 练习 1.5.1【代码】

id数组的变化情况:0 1 2 3 4 5 6 7 8 9 10 components 9 0 0 1 2 3 4 5 6 7 8 0 9 components 3 4 0 1 2 4 4 5 6 7 8 0 8 components 5 8 0 1 2 4 4 8 6 7 8 0 7 components 7 2 0 1 2 4 4 8 6 2 8 0 6 components 2 1 0 1 1 4 4 8 6 1 8 0 5 components 5 7 0 1 1 4 4 1 6 1 1 0 4 components 0 34 1 1 4 4 1 6 1 1 4 3 components 4 21 1 1 11 1 6 1 1 1 2 components 操作次数分析:find()函数每次调用访问数组1次。c...

算法(Algorithms)第4版 练习 1.3.20【代码】

方法实现://1.3.20/*** delete the kth element in a linked list, if it exists. * * @param k the kth element, it should larger than 1* @throws IllegalArgumentException if k < 1* @throws NoSuchElementException if the size of the list is less than k*/public Item delete(int k) {if(k < 1)thrownew IllegalArgumentException("k must larger than 1");Node<Item> precurrent = new Node<Item>();precurrent.next = ...

算法笔记_093:蓝桥杯练习 Problem S4: Interesting Numbers 加强版(Java)【代码】【图】

目录1 问题描述2 解决方案 1 问题描述Problem Description  We call a number interesting, if and only if:  1. Its digits consists of only 0, 1, 2 and 3, and all these digits occurred at least once.  2. Inside this number, all 0s occur before any 1s, and all 2s occur before any 3s.  Therefore, the smallest interesting number according to our definition is 2013. There are two more interseting nu...

算法(第4版)-1.1 练习(部分)【代码】

1.1.3命令行的取参方法:1.StdIn.readInt():  java XX,运行,输入参数,以空格或换行隔开;2.Integer.parseInt(args[0]):  java XX 参数,以空格隔开,运行。 1.1.6for (int i = 0; i <= 15; i++) {StdOut.println(f);f = f + g;g = f - g; }注意,当运行到g = f - g;这一行时,f已改变。 1.1.8System.out.println(‘b‘ + ‘c‘);答案:197“”表示String,‘’表示char。 1.1.15//https://github.com/aistrate/Algorithms...

算法提高——链表练习2【图】

链表练习2PAT乙级1025/甲级1074:反转链表 算法思路:将链表分块,每k个节点一块,针对每块中的节点进行反转操作反转链表的伪代码  设该区域头节点为head,定义指针p,q,r  p=head;  q=p->next  p->next = null;  while(k--){    r = q->next;    q->next = p->next;    p->next = q;    q = r;   }循环结束r指向下一组的开头,所以可以返回r作下一组的头指针  然后可以采用递归实现算法,需要注...

算法练习-求21位数的水仙花数【代码】

问题描述:在三分钟内求出所有的21位水仙花数 直接上代码:publicclass 求21位数的水仙花数 {/*** @param args*/publicstaticvoidmain(String[] args) {long startTime=System.currentTimeMillis();//程序开始时间BigInteger pw[]=new BigInteger[10];for(int i=0;i<pw.length;i++){pw[i]=p(i);//每个下标存0~9的21次方}int nn[]=newint[10];//统计各个数字的出现次数f(pw,nn,0,0);System.out.println("OK");long endTime=System.c...

[Python3 练习] 008 欧几里德算法【代码】

题目:写个“欧几里德算法”的小程序(1) 描述我知识浅薄,一开始被“欧几里德”的大名唬住了,去搜了一下才知道这就是高中时学过的“辗转相除法”辗转相除法的用处 求两个正整数的最大公约数示例 a = 30,b = 18,求 a 与 b 的最大公约数 a % b = 12 => a = 18, b = 12a % b = 6 => a = 12, b = 6a % b = 0 => 此时的 b 即为原来两数的最大公约数总结 大的数 num1 对小的数 num2 取余把 num2 的值赋给 num1,把余数赋给 num2,再进...

算法练习--素数环

输入一个数字n,输出[1,N]内的所有组合,满足a[i]+a[i+1]为素数,其中i∈[0,i-1]例如输入:6输出:1,4,3,2,5,6实现:var MAX = 10;////setup prime array var primeArr = new Array();var Ann = function a(arr){ if(arr.length <= 1){return arr;}var rr = new Array(); for(var i = 0; i<arr.length;i++){//get a copy var ar = new Array(); for(var j = 0; j < arr.length;j++){ar[j] = arr[j];}var current = ar[i]; ar.splic...

Leetcode练习(Python):树类:第116题:填充每个节点的下一个右侧节点指针:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。【代码】【图】

题目:填充每个节点的下一个右侧节点指针:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都...

算法练习:重叠区间个数

一、题目描述给定多个可能重叠的区间,找出重叠区间的个数。举例如下:输入:[1,5],[10,15],[5,10],[20,30]输出:2 说明:题意应该是找出重叠区间中区间的最大个数,当没有区间重叠时,重叠个数最大为1,比如输入为:[1,5],[10,15],则输出为1;输入为:[1,2],[2,3],[3,4],[4,5],则输出为2(重叠区间相互之间都要有交集);输入为:[1,7],[2,5],[3,4],[8,15],[9,17],[20,25],则输出为3。 二、题目分...

代码练习(二维数组的定义,字符串加减,子元素的创建及绑定,排序算法)【代码】

<!DOCTYPE> <html><head><meta charset="utf-8"><title>IFE JavaScript Task 01</title></head> <body><ul id="source"><li>北京空气质量:<b>90</b></li><li>上海空气质量:<b>70</b></li><li>天津空气质量:<b>80</b></li><li>广州空气质量:<b>50</b></li><li>深圳空气质量:<b>40</b></li><li>福州空气质量:<b>32</b></li><li>成都空气质量:<b>90</b></li></ul><ul id="resort"><!-- <li>第一名:北京空气质量:<b>90</b></l...

A1-2017级算法上机第一次练习赛 G 股票交易【代码】【图】

题目描述一般一家公司的股票价格是不稳定的,就像图里所展示的这样,每时每刻的价格都在变。(图片来源网络)现在,有一份很长很长的连续时间点股票价格数据(按时间从先到后顺序),老板需要你快速的寻找在这段数据范围内一次买卖股票的每股最大收益(假设所有人买卖股票都在给定时间点的数据范围内)。要想解决这个问题,你该怎么办?输入多组测试数据(10组左右),以EOF结尾。每组测试数据分为两行第一行为数组长度n,正整数,...

Hark的数据结构与算法练习之希尔排序【代码】

算法说明希尔排序是插入排序的优化版。插入排序的最坏时间复杂度是O(n2),但如果要排序的数组是一个几乎有序的数列,那么会降低有效的减低时间复杂度。希尔排序的目的就是通过一个increment(增量)来对数列分组进行交换排序,最终使数列几乎有序,最后再执行插入排序,统计出结果。通过increment=n/2, 也就是如果9个数的话,增量为4,2,1。 如果是20个数的话,增量就是10,5,2,1。 当increment为1时,其实对几乎有序的数列...

2018年全国多校算法寒假训练营练习比赛(第五场)题解【代码】

【题目链接】 A - 逆序数经典问题,有很多方法,例如树状数组,线段树,归并排序等。代码不贴了。 B - Big Water Problem单点修改求区间和,树状数组或者线段树都可以。#include <bits/stdc++.h> using namespace std;const int maxn = 1e5 + 10; long long c[maxn];int lowbit(int x) {return x & (-x); }long long sum(int p) {long long res = 0;while(p) {res += c[p];p -= lowbit(p);}return res; }void update(int x, long l...