Go语言中文网 为您找到相关结果 9

使用Golang实现的快速排序

一、舞动的快速排序 在实现排序算法前,先让我们来欣赏一段关于快速排序的视频,本段视频展示了快速排序的原理,如果没有看懂,请看完本文后再回头来看一下,应该就明白了吧。 O(∩_∩)O~ 二、快速排序实现 2.1 快速排序基础版 通过下面一组数据,将最左边的数设定为轴,并记录其值为 s。 (注意:*表示要交换的数,[]表示轴) [41] 24 76* 11 45 64 21 69 19 36* [41] 24 36 11 45* 64 21 69 19* 76 [41] 24 36 11 19 64* 21* 69 45 76 [41] 24 36 11 19 21 64 69 45 76 21 24 36 11 19 [41] 64 69 45 76 回圈处理: 令索引 i 从数列左方往右方找...阅读全文

博文 2014-10-09 16:00:06 u012797015

golang循环递增数组查找值

循环递增数组查找值 golang1.实现要求 在循环递增数组中查找某个值2.实现方法使用二分法实现查找使用定义循环递增数组是指数组收尾项链能够形成递增的环eg:[4,5,6,7,8,9,1,2,3]严格单调数组 数组从左往右一直增长eg:[1,2,3,4,5,6]实现思路将数组根据二分法进行分割将数组通过中间值分割后得到两个数组 一个为低调递增数组 另一个为循环递增数组 通过查找值比较进而确定查找值得范围在那个数组中 一次循环执行这一步得到是否能够查找值代...阅读全文

博文 2017-07-04 16:06:15 我是不是小明

01背包问题(完全背包,部分背包)golang实现

很经典的动态规划问题,具体思路这里就不列出了,网上太多资料了。想要详细理解的话可以去看背包九讲 这里分别列出,01背包,完全背包,部分背包 golang实现。 01背包 给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。 应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大? 从左往右,从上往下填表(example: 5表示重量,12表示价值) 1.png 代码and注释 dp[i][j] = max(dp[i-1][j], nums[i][1]+dp[i-1][j-nums[i][0]]) 仔细想清楚这一行 backpack.png 完全背包 给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi,每个物品都有无限多件...阅读全文

博文 2017-10-24 02:04:49 Tibbersshao

用Golang将图片转化成ASCII码

用Golang将图片转化成ASCII码 在开始之前先看看最终效果: 项目地址在这里:https://github.com/qeesung/im... , 欢迎star 我们都知道图片是通过一个像素点矩阵组成的,每一个像素点都是有四个值,分别是R,G,B,A组成,其中RGB就是红色,绿区,蓝色,简称三原色,在计算机中取值从0-255,而A则是颜色的透明度,取值0.0-1.0。 我们现在要做的就是将一个彩色的图片转化成一个由ASCII组成的图片,换句话说,就是将RGBA像素点的矩阵转化成一个由字符组成的矩阵,必要的时候再给字符加上颜色就可以啦。 (R, G, B, A) (R, G, B, A) (R, G, B, A) char1, char2, char3 (R, G, B, A) (R, ...阅读全文

博文 2018-10-21 17:34:39 qeesung

LeetCode Practice(一)

第一题:计算二进制数两个1之间的间距 题目: 我的思路 英文翻译过来就是把数字化成二进制,计算两个1之间的最大间距。1000,1100,1010的最大间距分别是0,1,2.以此类推 我的第一反应是大学数字逻辑课上的一个知识点,十进制转化为二进制——短除法! 也就是说,在接收到输入的十进制数之后,利用短除法,转化为二进制数。转化的过程进行间距的计算 虽然短除法先计算出来的是二进制低位的数,但是1010的间距从左往右数和从右往左数,结果是等价的 实现如下: func BiggestGap(n int) int { distance,temp := 0,0 bValue := 0 for n,bValue = bDiv(n);bValue==0; { n,bValue = bDiv(n) } fo...阅读全文

博文 2019-06-04 10:32:43 Mandelbrot_Kobe

之前在控制台上撸了一个2048游戏,分享出来鉴赏鉴赏

[码云地址](https://gitee.com/janbar/game2048) ```go package main import ( "math/rand" "fmt" "io/ioutil" "os" "strconv" "path/filepath" "time" "github.com/jan-bar/golibs" ) const Length = 4 /* 表示2048长宽均4个格子 */ var ( NumData [Length][Length]int /* 存储格子数据的二维数组 */ TmpData = struct { data [Length * Length]struc...阅读全文

(六) ZigZag Convert

题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输入: s = "LEETCODEISHIRING", numRows = 3 输出: "LCIRETOESIIGEDHN" 示例 2: 输入: s = "LEETCODEISHIRING", numRows = 4 输出: "LD...阅读全文

博文 2019-02-16 08:34:44 L白水飘萍

golang快速排序改进版

package main import ( "fmt" "math/rand" ) // 如果数量小于13直接用插入排序 func SortForMerge(arr []int, left, right int) { for i:=left; i<=right; i++ { temp := arr[i] var j int for j=i; j>left && temp < arr[j-1]; j-- { arr[j] = arr[j-1] } arr[j] = temp } } func swap(arr []int,i, j int) { // 数据交换 arr[i], arr[j] = arr[j], arr[i] } func QuickSortX(arr []int, left, ...阅读全文

博文 2019-08-16 18:02:42 发条家的橙子

LeetCode-6-Z 字形变换

题目描述 Z 字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输入: s = "LEETCODEISHIRING", numRows = 3 输出: "LCIRETOESIIGEDHN" 示例 2: 输入: s = "LEETCODEISHIRING", numRows = ...阅读全文

博文 2019-07-12 21:32:44 monigo