主页 > 知识库 > Golang算法问题之数组按指定规则排序的方法分析

Golang算法问题之数组按指定规则排序的方法分析

热门标签:电销机器人可以补救房产中介吗 浙江人工智能外呼管理系统 最短的地图标注 百度地图标注搜索关键词 兓㑿 电梯外呼访客系统 腾讯外呼系统价格 成都呼叫中心外呼系统平台 谷歌便利店地图标注

本文实例讲述了Golang算法问题之数组按指定规则排序的方法。分享给大家供大家参考,具体如下:

给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,

如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列。如果第i列到最后一列都相同,则按原序排列。

样例输入:

1,2,3
2,3,4
2,3,1
1,3,1

按第2列排序,输出:

1,2,3
2,3,1
1,3,1
2,3,4

代码实现:

复制代码 代码如下:
package huawei
import (
    "fmt"
    "sort"
)
func Test09Base() {
    nums := [][]int{{1, 2, 3}, {2, 3, 4}, {2, 3, 1}, {1, 3, 1}}
    firstIndex := 2 //按第二列排序
    result := arraySort(nums, firstIndex-1)
    fmt.Println(result)
}
//按指定规则对nums进行排序(注:此firstIndex从0开始)
func arraySort(nums [][]int, firstIndex int) [][]int {
    //检查
    if len(nums) = 1 {
        return nums
    }
    if firstIndex 0 || firstIndex > len(nums[0])-1 {
        fmt.Println("Warning: Param firstIndex should between 0 and len(nums)-1. The original array is returned.")
        return nums
    }
    //排序
    mIntArray := IntArray{nums, firstIndex}
    sort.Sort(mIntArray)
    return mIntArray.mArr
}
type IntArray struct {
    mArr       [][]int
    firstIndex int
}
//IntArray实现sort.Interface接口
func (arr *IntArray) Len() int {
    return len(arr.mArr)
}
func (arr *IntArray) Swap(i, j int) {
    arr.mArr[i], arr.mArr[j] = arr.mArr[j], arr.mArr[i]
}
func (arr *IntArray) Less(i, j int) bool {
    arr1 := arr.mArr[i]
    arr2 := arr.mArr[j]
    for index := arr.firstIndex; index len(arr1); index++ {
        if arr1[index] arr2[index] {
            return true
        } else if arr1[index] > arr2[index] {
            return false
        }
    }
    return i j
}

希望本文所述对大家Go语言程序设计有所帮助。

您可能感兴趣的文章:
  • Go语言实现的树形结构数据比较算法实例
  • Go语言算法之寻找数组第二大元素的方法
  • Golang排列组合算法问题之全排列实现方法
  • 详解Go语言运用广度优先搜索走迷宫

标签:绍兴 雅安 宜昌 邢台 盘锦 眉山 上海 七台河

巨人网络通讯声明:本文标题《Golang算法问题之数组按指定规则排序的方法分析》,本文关键词  Golang,算法,问题,之,数组,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Golang算法问题之数组按指定规则排序的方法分析》相关的同类信息!
  • 本页收集关于Golang算法问题之数组按指定规则排序的方法分析的相关信息资讯供网民参考!
  • 推荐文章