求两圆交点算法代码(golang实现)

实现代码: package main import ( "math" ) //代表一个点,包含横纵坐标 type Point struct { X, Y float64 } //代表一个圆,包含横纵坐标及半径 type Circle struct { Point R float64 } //创建圆对象 func NewCircle(x, y, r float64) [Read More]

线性复杂度选出第k小元素、中位数、最小的k个元素(C-C++实现)

封装成函数: #include <malloc.h> void swap(int *a,int i,int j) { int t = a[i]; a[i] = a[j]; a[j] = t; } int partition(int *a,int lo,int hi) { int i,j; i=lo; j=hi+1; while(1) { while(a[++i]<=a[lo]) { if(i==hi) { break; } } while(a[--j]>a[lo]) { if(j==lo) { break; } } if(i>=j) { break; } swap(a,i,j); } swap(a,lo,j); return j; } int* copy_of(int *a,int len) { int *ret = (int*)malloc(sizeof(int)*len); [Read More]

选择排序(C-C++-实现)

封装成函数: //交换数组元素 void swap(int *a,int i,int j) { int t = a[i]; a[i] = a[j]; a[j] = t; } //选择排序 void selection_sort(int *a,int len) { int m = len-1; //以免每次循环判断都运算 int i,j,k; for (i=0; i<m; i++) { k=i; for (j=i+1; j<len; [Read More]

选择排序(Java实现)

封装成类: /** * 选择排序 * * @author imroc */ public class SelectionSort { //交换数组元素 private static void swap(int[] a, int i, int j) { int t = a[i]; a[i] = a[j]; a[j] = t; } //选择排序 public static void sort(int[] a) { int m = a.length - 1; //以 [Read More]

选择排序(golang实现)

封装成函数: //交换数组元素 func swap(slice []int, i int, j int) { slice[i], slice[j] = slice[j], slice[i] } //选择排序 func SelectionSort(s []int) { l := len(s) //以免每次循环判断都运算 m := len(s)-1 for i:=0;i<m;i++ { k:=i for j:=i+1;j<l;j++ { if s[j]<s[k] { k = j [Read More]