当前位置: 首页 > news >正文

上海网站运营南宁推广软件

上海网站运营,南宁推广软件,落地页网站,潍坊网站建设公司排名本代码全网首发&#xff0c;使用Go plan9 windows arm64汇编&#xff0c;实现基础版快速排序算法。 未引入随机因子的快速排序的普通Go代码长这样。 func QuickSort(arr []int) {if len(arr) < 1 {return}base, l, r : arr[0], 0, len(arr)-1for i : 1; i < r; {if arr…

本代码全网首发,使用Go plan9 windows arm64汇编,实现基础版快速排序算法。

未引入随机因子的快速排序的普通Go代码长这样。

func QuickSort(arr []int) {if len(arr) <= 1 {return}base, l, r := arr[0], 0, len(arr)-1for i := 1; i <= r; {if arr[i] > base {arr[i], arr[r] = arr[r], arr[i]r--continue}arr[i], arr[l] = arr[l], arr[i]l, i = l+1, i+1}QuickSort(arr[:l])QuickSort(arr[l+1:])
}

在这里插入图片描述

如下,使用windows arm64 Go plan9汇编实现的快速排序。

file: quickSort.s

#include "textflag.h"
// func QuickSortByASM(slice []int)
TEXT ·QuickSortByASM(SB), $104-24// NO_LOCAL_POINTERSMOVD R0 , tmp-8*3(SP);  MOVD R1 , tmp-8*4(SP)MOVD R2 , tmp-8*5(SP);  MOVD R3 , tmp-8*6(SP)MOVD R4 , tmp-8*7(SP);  MOVD R5 , tmp-8*8(SP)MOVD R6 , tmp-8*9(SP);  MOVD R7 , tmp-8*10(SP)MOVD R8 , tmp-8*11(SP); MOVD R9 , tmp-8*12(SP)MOVD R10, tmp-8*13(SP)MOVD slice+0(FP), R0    // arrayPtrMOVD slice+8(FP), R1    // arrayLengthMOVD $0, R2             // l_indexMOVD R1, R3             // r_index = arrayLengthSUB  $1, R3             // r_index -= 1MOVD $0, R4             // pointer1MOVD $0, R5             // pointer2MOVD $8, R6             // dataSizeMOVD $1,   R7           // indexMOVD (R0), R8           // base   TODO random indexMOVD $0,   R9CMP $1, R1; BLE LABEL_END       // if arrayLength <= 1 return
LABEL_FOR_START:CMP R3, R7; BGT LABEL_FOR_END   // if index > r_index returnMOVD R7, R4      // offset = indexMUL  R6, R4      // offset *= dataSizeADD R0,  R4      // arr[i] = R4MOVD (R4), R5    // arr[i]CMP R8, R5; BLE LABEL_SWAP // if arr[i] <= baseMOVD R3, R5      // offset = r_indexMUL  R6, R5      // offset *= dataSizeADD  R0, R5      // arr[r]MOVD (R5), R9    // tmp     = arr[r]MOVD (R4), R10   // tmp1    = arr[i]MOVD R10, (R5)   // arr[r]  = arr[i]MOVD R9, (R4)    // arr[i]  = tmpSUB  $1, R3       // r_index -= 1JMP LABEL_FOR_START
LABEL_SWAP:MOVD R7, R4MUL  R6, R4ADD  R0, R4MOVD R2, R5MUL  R6, R5ADD  R0, R5MOVD (R4), R9  // tmp = arr[i]MOVD (R5), R10 // tmp1 = arr[l]MOVD R10, (R4) // arr[i] = tmp1MOVD R9, (R5)  // arr[l] = tmpADD $1, R2     // l_index += 1ADD $1, R7     // index += 1JMP LABEL_FOR_START
LABEL_FOR_END:MOVD R0, R4MOVD R2, R5MOVD R4, tmp-104(SP)MOVD R5, tmp-96(SP)CALL ·QuickSortByASM(SB)MOVD R2, R4ADD  $1, R4MUL  R6, R4ADD  R0, R4  // right addressMOVD R1, R5  // tmp = arrayLengthSUB  R2, R5  // tmp -= l_indexSUB $1,  R5MOVD R4, tmp-104(SP)MOVD R5, tmp-96(SP)CALL ·QuickSortByASM(SB)
LABEL_END:MOVD  tmp-8*3(SP),  R0; MOVD  tmp-8*4(SP),  R1MOVD  tmp-8*5(SP),  R2; MOVD  tmp-8*6(SP),  R3MOVD  tmp-8*7(SP),  R4; MOVD  tmp-8*8(SP),  R5MOVD  tmp-8*9(SP),  R6; MOVD  tmp-8*10(SP), R7MOVD  tmp-8*11(SP),  R8;MOVD  tmp-8*12(SP), R9MOVD  tmp-8*13(SP), R10RET

该汇编版本快排基于普通版快排手写而成, 未加入stackmap信息,大数据量样本可能会出现panic,仅供参考。

对数器

package mainimport ("fmt""math/rand""sort"
)func QuickSortByASM(slice []int) // 汇编函数声明func main() {N := 50for index := 0; index < 1000; index++ {slice := make([]int, N)for i := 0; i < N; i++ {slice[i] = rand.Int()}slice1 := make([]int, N)slice2 := make([]int, N)for i, v := range slice {slice1[i] = vslice2[i] = v}sort.Ints(slice1)QuickSortByASM(slice2)for i := 0; i < N; i++ {if slice1[i] != slice2[i] {fmt.Println(slice)fmt.Println(slice1)fmt.Println(slice2)panic(i)}}}fmt.Println("pass")
}

pass

http://www.mmbaike.com/news/62048.html

相关文章:

  • 醴陵 网站建设百度搜索关键词排名
  • 东莞网络科技营销seo的方式有哪些
  • 乌云网是个什么网站网站seo查询站长之家
  • 用手机做网站的软件seo的优点和缺点
  • 做调查网站怎样换IP河南优化网站
  • 工业设计网站外网公司网站建设北京
  • 湘潭网站建设 真好磐石网络最好的搜索引擎
  • 知名网站建设平台网站百度收录批量查询
  • dreamweaver是系统软件吗东莞seo广告宣传
  • 郑州网站建设工作西安seo排名扣费
  • 苏州网站建设公司有哪些有没有免费的写文案的软件
  • 网站制作公司 恶意推广一般去哪发帖
  • 阿里云服务器做网站多少钱推广员网站
  • b2b网站计划书如何做网销
  • 个人网站网站建设有趣的网络营销案例
  • php 企业 网站新闻头条今日要闻
  • 临沂网站制作网站做网站建设优化的公司排名
  • 武陟做网站建站软件可以不通过网络建设吗
  • 创意网站设计模板谷歌优化的网络公司
  • 自己建个网站需要什么什么是关键词搜索
  • 网站制作的趋势外链工具在线
  • 网页制作的常用开发工具是什么陕西seo优化
  • 唐河永琚建筑公司网站网站关键词优化排名技巧
  • 如何做logo标志太原seo代理商
  • 易思espcms企业网站管理系统广州最近爆发什么病毒
  • 云服务器可以做视频网站吗超级外链吧
  • 国外教做蛋糕的网站乐事薯片软文推广
  • WordPress智能友链审核seo基础知识
  • 思途旅游网站建设系统重庆seo快速优化
  • 做网站dw怎么用建网站一般多少钱