duangsuse::Echo
713 subscribers
4.24K photos
127 videos
583 files
6.46K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
对比
那时我不会看偏移,现在我已经会看偏移量了(
Forwarded from duangsuse::Echo
( 说实话,之前 Native 在我眼前是无解的,现在已经没有那么黑箱了
Forwarded from duangsuse::Echo
AndBug 无源代码通过 ADB 调试 Android 非常方便
只要给几个方法下断点就可以了
duangsuse::Echo pinned Deleted message
require "../src/stumpy_png"
include StumpyPNG

canvas = Canvas.new(256, 256)

(0..255).each do |x|
(0..255).each do |y|
# RGBA.from_rgb_n(values, bit_depth) is an internal helper method
# that creates an RGBA object from a rgb triplet with a given bit depth
color = RGBA.from_rgb_n(x, y, 255, 8)
canvas[x, y] = color
end
end

StumpyPNG.write(canvas, "rainbow.png")
require "../src/stumpy_png"
include StumpyPNG

canvas = Canvas.new(256 * 2, 256 * 2)

(1..2).each do |i|
puts i
(0..(255 * i)).each do |x|
(0..(255 * i)).each do |y|
puts "X: #{x}, Y: #{y}"
color = RGBA.from_rgb_n(x | 3, y & 0b10010010, 255, 8)
canvas[x, y] = color
end
end
end

1000.times do
canvas[rand(512).to_i, rand(512).to_i] = RGBA.from_rgb_n(rand, rand, 255, 8)
end

StumpyPNG.write(canvas, "rainbow.png")

OK
#dev Drakeet 那个蹩脚的表达方式我看了好久才明白... j < end - 1 - i + start
BubbleSorter.java
3.3 KB
也不算是「quick」version,因为 wiki 上的那个版本也很快,对比一些国内的博客是少比较了n 次,但是,常量是不进大 O 表示法的
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
BubbleSorter.java
实现是(伪代码)

start = start || list.firstIndex
end = end || list.lastIndex

# 减去循环次数是跳过最后一项,最后一项之前对比过,已经是最小的了
for i = start to end
for j = start to end - iteration
if isBiggerThan(list[j + 1], list[j])
swapWithNext(list, j)

最准确的复杂度描述是这样的:

平均情况 O(n ^ 2) 比较 O(n ^ 2) 交换
(但实际上会比这个少,第一个 for 的复杂度是 O(n) 第二的则是 n * 0.5 * n + 1 貌似 )
最坏情况 O(n ^ 2) 比较 O(n ^2) 交换
最佳情况 O(n) 比较 O(1) 交换
空间复杂度 O(1)