vault backup: 2023-09-05 10:33:28

This commit is contained in:
胡楠
2023-09-05 10:33:28 +08:00
parent c47a62ce2d
commit c75c9995b7
4 changed files with 393 additions and 15 deletions

View File

@@ -0,0 +1,67 @@
import argparse
import sys
from jupyter_client import KernelManager
import nbformat
from nbconvert import HTMLExporter
from nbclient import NotebookClient
from nbclient.exceptions import CellExecutionError
import json
import logging
# Parse input arguments.
parser = argparse.ArgumentParser()
parser.add_argument('document_id')
args = parser.parse_args()
# Set up a logger that writes to stderr.
logging.basicConfig(level='INFO')
logger = logging.getLogger('obsidian-jupyter')
logger.info('started server for document %s', args.document_id)
# Create a notebook and kernel.
cell = nbformat.v4.new_code_cell()
nb = nbformat.v4.new_notebook(cells=[cell])
km = KernelManager()
client = NotebookClient(nb, km)
try:
# Respond to each request.
for request in sys.stdin:
# Load the request and generate a response with matching id.
logger.info('received request: %s', request)
request = json.loads(request)
request_body = request['body']
response = {
'id': request['id'],
}
# Execute a cell.
if request_body['command'] == 'execute':
cell['source'] = request_body['source']
try:
nb = client.execute(nb)
except CellExecutionError as ex:
logger.info('cell failed to execute: %s', ex)
html_exporter = HTMLExporter(template_name='basic')
(response_body, resources) = html_exporter.from_notebook_node(nb)
elif request_body['command'] == 'restart_kernel':
km.restart_kernel()
response_body = ''
else:
logger.error('unrecognised command: %s', request_body['command'])
response_body = ''
# Pass the response back.
response['body'] = response_body
response = json.dumps(response)
sys.stdout.write(response + '\n')
logger.info('sent response: %s', response)
sys.stdout.flush()
sys.stderr.flush()
finally:
# Clean up the kernel.
if km.is_alive:
logger.info('shutting down kernel...')
km.shutdown_kernel()
logger.info('exiting...')

View File

@@ -4,16 +4,16 @@
"type": "split",
"children": [
{
"id": "18520963df8aa056",
"id": "9c50b84bb6df2f5e",
"type": "tabs",
"children": [
{
"id": "de3f9d04c35ed5ff",
"id": "90587f11c8ede650",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "树/树.md",
"file": "2.线性表/ex.md",
"mode": "source",
"backlinks": true,
"source": false
@@ -86,9 +86,9 @@
"state": {
"type": "backlink",
"state": {
"file": "树/树.md",
"collapseAll": true,
"extraContext": true,
"file": "2.线性表/ex.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
@@ -103,7 +103,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "树/树.md",
"file": "2.线性表/ex.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@@ -126,7 +126,7 @@
"state": {
"type": "outline",
"state": {
"file": "树/树.md"
"file": "2.线性表/ex.md"
}
}
},
@@ -159,19 +159,24 @@
"templater-obsidian:Templater": false
}
},
"active": "de3f9d04c35ed5ff",
"active": "90587f11c8ede650",
"lastOpenFiles": [
"未命名.canvas",
"2.线性表/ex.md",
"2.线性表/线性表.md",
"1.绪论/ex.md",
"树/树.md",
"未命名 1",
"未命名",
"树/pic/Pastedimage20230810154259.png",
"4.串/串.md",
"树/pic/Pastedimage2230810153842.png",
"树/树.md",
"树/pic",
"树",
"3.栈、队列、数组/栈、队列、数组.md",
"4.串",
"1.绪论/绪论.md",
"1.绪论/pic/Pasted image 20230802145127.png",
"2.线性表/线性表.md",
"3.栈、队列、数组",
"2.线性表/pic/image-2023080216367.png",
"2.线性表/pic/image-2023080214616.png",
@@ -182,9 +187,6 @@
"2.线性表/code",
"线性表/init.c.md",
"2.线性表/code/init.c",
"未命名.canvas",
"线性表/Drawing 2023-08-02 15.07.11.excalidraw.md",
"2.线性表",
"1.绪论"
"线性表/Drawing 2023-08-02 15.07.11.excalidraw.md"
]
}

29
1.绪论/ex.md Normal file
View File

@@ -0,0 +1,29 @@
1.1.3
抽象数据类型
有序表
数据的逻辑结构独立于存储结构
数据关系
节点内的存储单元一定连续
不一定不相同,二叉树和二叉排列数,
线性表链式与顺序存储,插入字符, O1 On
1.2.3
算法满足5个条件
执行时间与 $n^2$ 成正比
$log_2 N$
3 开方 n
$n^2$
n(n+1) X
n
$n log_2 n$
mn X
n X
n X
$n^ (1/2)$
n

280
2.线性表/ex.md Normal file
View File

@@ -0,0 +1,280 @@
ls2.1.3 P12
1. 数据元素
2. B
3. 只有一个前驱元素
2.2.3 P16
选择
1. A 密度大
2. 线性表的顺序存储结构是随机存取的存储结构
3. B 元素的存放顺序
4. D
5. A
6. I O(1 、II O(1 、 III O(n 、IV O(n)
7. I \ II
8. D n-i+1 XXX n-1
9. C 1 n
10. C 0<= i <- n-1 XXX B
11. D
应用 1.找出最小元素,并删除,最后元素补提
```c
bool Del_main(SqList &L,ElemType &value)
{
if(L.length == 0 )
return False;
value = L.data[0];
int pos = 0;
for(int i=1; i < L.length; i++)
if{ L.data[i] < value }
{
value = L.data[i];
pos = i;
}
L.data[pos] = L.data[L.length - 1];
L.length--;
return true;
}
```
2.
空间复杂度为 1, 顺序表 L 的所有元素逆置
```c
void Changefun(Sqlist &L){
Eletype temp;
for(int i = 0; i< (L.length/2); i++)
{
temp = L.data[i];
L.data[i] = L.data[L.length - i - 1];
L.data[L.length-i-1 ] = temp;
}
}
```
1. L 长度 n ,顺序表
```
viod delX(Sqlist &L, x)
{
int k = 0;
for(int i = 0; i<L.length;i++)
{
if(L.data[i] != x )
{
L.data[k]= L.data[i];
k++;
}
L.length = k;
}
}
```
4.
```c
void funtionSet(Sqlist &L,int s ,int t)
{
if ( L.leagth == 0 || s >= t)
return false;
// 1. 使用删除法
int k = 0;
for(int i = 0; i<L.length;i++)
{
if(L.data[i] < s || L.data[i] > t )
{
L.data[k] = L.data[i];
k++;
}
L.length = k;
}
// 2. 使用回流
int i=0,k=0;
which( i < L.length )
{
if ( L.data[i] < s && L.data[i] > t )
k++;
else
L.data[i-k] = L.data[i];
i++;
}
L.length = L.length - k;
}
```
5.
```c
```
6.
```c
bool Delet_Same(Seqlist &L)
{
if ( L.length == 0 )
return false;
int i,j;
for ( i = 0,j=1; j<L.length ; j++ )
{
if ( L.data[i] != L.data[j] )
L.data[++i] = L.data[j];
}
L.length=i+1;
return true;
}
```
7.
```c
bool merge_number(Sqlist A, Sqlist BSqlst &C)
{
if ( A.length + B.length > C.length )
return false;
int i=0,j=0,k=0;
while ( i<A.length && j<B.length )
{
if (A.data[i] <= B.data[j])
C.data[k++] = A.data[i++];
else
C.data[k++] = B.data[j++];
}
while (i<A.length)
C.data[k++] = A.data[i++];
while (j<B.length)
C.data[k++] = B.data[j++];
C.length = k;
return true;
}
```
8.
```c
typedef int Datatype;
void Reverse(Datatype A[], int left,int right,int arraySize)
{
if ( left >= right || right >= arraySize )
return false;
int mind = (left + right ) / 2;
for ( int i = 0 ; i< mind - left ; i++)
{
Datatype temp = A[left+i];
A[Left=i] = A[right-i];
A[right-i] = temp;
}
}
Reverse(A,0,m+n-1,arraySize);
Reverse(A,0,m+n-1,arraySize);
Reverse(A,0,m+n-1,arraySize);
```
9.
```c
void SearchExchangeInsert(ElemType A[],ElemType x)
{
int low=0,high=n-1,mid;
while(low <= high)
{
mid = (low + high)/2;
if (A[mid] == x )
break;
else if ( A[mid] < x )
low = mid +1;
else
high = mid -1;
}
if (A[mid] ==x && mid != n-1 )
{
t = A[mid];
A[mid] = A[mid+1]
A[mid+1] = t;
}
if (low > high)
{
for (i = n-1 ; i>high;i--)
{
A[i+1] = A[i];
A[i+x] = x;
}
}
}
```
10.
```c
void Reverse(int R[], int from,int to)
{
int i,tmp;
for(i=0;i<(to-from+1)/2;i++)
{
temp = R[from+i];
R[from+i] = R[to-i];
R[to-i] = temp;
}
}
void Converse(int R[], int n ,int p )
{
Reverse(R,0,p-1);
Reverse(R,p,n-1);
Recerse(R,0,n-1);
}
```
时间 O(n) 空间 O(1)
11.
```c
```
2.3.7
1. B
2. B
3. C
4. C x D
5. A
6. C
7. B x D
8. A x C
9. C
10.