• 用golang刷算法--快速排序算法


    快速排序算法流程

    1. 选定一个基准值(任意选,以第一个为例)
    2. 定义左右指针指向左右两端
    3. 左指针往右移动,如果遇到大于基准值的数就把它和右指针的值调换位置,然后左指针不动,右指针开始向左移动,如果遇到小于基准值的数就把他和左指针的值调换位置,然后开始移动左指针,以此类推,知道左右指针相遇
    4. 递归上述过程知道排序结束

    用golang实现

    func QuickSort(intList []int) {
    	// 如果长度小于等于1就直接结束
    	if len(intList) <= 1 {
    		return
    	}
    	// 1. 将第一个值选定为基准值
    	flag := intList[0]
    	// 定义左右指针
    	left, right := 0, len(intList)-1
    
    	for i := 1; i <= right; {
    		if intList[i] > flag {
    			intList[i], intList[right] = intList[right], intList[i]
    			right--
    		}else{
    			intList[i], intList[left] = intList[left], intList[i]
    			i++
    			left++
    		}
    	}
    	// 递归
    	QuickSort(intList[:left])
    	QuickSort(intList[left+1:])
    }
    
  • 相关阅读:
    (转)三款Json查看小工具
    开源数据源
    关于异常
    java 线程池
    百度android面试及一些问题的讲解
    linux常用命令
    android activityManager
    Android ListView及其属性
    android listView与adapter
    android 反编译
  • 原文地址:https://www.cnblogs.com/kainhuck/p/12961997.html
Copyright © 2020-2023  润新知