C语言、python、go、C#版本选择排序
来源:互联网 发布:软件测试工具使用 编辑:程序博客网 时间:2024/04/29 01:24
C语言版本
#include <stdio.h>void swap(int *a,int *b){ *a=*a+*b; *b=*a-*b; *a=*a-*b;}int getminkey(int *arr,int start,int len){ int k = start,i, minkey=arr[start]; for(i = start + 1; i < len ;i++) { if(arr[i] < minkey) { minkey=arr[i]; k=i; } } return k;}void select_sort(int *arr,int len){ int i; for(i = 0;i < len ; i++) { int k = getminkey(arr,i,len); if(k!=i) { swap(&arr[i],&arr[k]); } }}int main(void){ int arr[10]={31,52,22,7,4,88,33,99,55,24}; select_sort(arr,sizeof(arr)/sizeof(int)); int i; for (i=0;i<10;i++) { printf("%d\n",arr[i]); } return 0;}
python 版本
def minkey(arr,n): count=len(arr) k=n mink=arr[n] for i in range(n,count-1): if arr[i]<mink : mink=arr[i] k=i return kdef select (arr):count=len(arr)i=0for i in range(0,count-1):k=minkey(arr,i+1)if k!=i :arr[k],arr[i]=arr[k],arr[i]#python 交换变量非常简单arr=[3,2,5,6,2,4,77,23,643,88,24]select(arr)print(arr)
go语言 版本
// mygo project main.go
package main
import "fmt"
func getminkey(arr []int, n int) (k int) { //go语言的返回值定义在参数后面的括号中。是需要首先定义的
k = n
minkey := arr[n]
count := len(arr)
for i := n + 1; i < count; i++ {
if arr[i] < minkey {
minkey = arr[i]
k = i
}
}
return k
}
func select_sort(arr []int) {
len := len(arr)
for i := 0; i < len; i++ {
k := getminkey(arr, i)
if k != i {
arr[i], arr[k] = arr[k], arr[i] //类似python的非常方便的变量换位
}
}
}
func main() {
var arr = []int{31, 52, 22, 7, 4, 88, 33, 99, 55, 24}
select_sort(arr)
len := len(arr)
for i := 0; i < len; i++ {
fmt.Println(arr[i])
}
}
C# 版本
static void Main(string[] args) { int[] arr = { 31, 52, 22, 7, 4, 88, 33, 99, 55, 24 }; SelectSort(arr); for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr[i]); } Console.ReadKey(); } private static void SelectSort(int[] arr) { for (int i = 0; i < arr.Length; i++) { int k = GetMinKey(arr, i); if (k != i) { Swap(ref arr[k],ref arr[i]); } } } private static void Swap(ref int a, ref int b)//C# 使用ref引用类型来改变实参的值 { a = a + b; b = a - b; a = a - b; } private static int GetMinKey(int[] arr, int n) { int k = n; int min = arr[n]; for (int i = n + 1; i < arr.Length; i++) { if (min > arr[i]) { min = arr[i]; k = i; } } return k; }
1 1
- C语言、python、go、C#版本选择排序
- 简单选择排序(C语言版本)
- C语言选择排序
- c语言选择排序
- c语言选择排序
- C语言---选择排序
- C语言 选择排序
- c语言选择排序
- 【C语言】选择排序
- C语言:选择排序
- C语言 选择排序
- C语言选择排序
- c语言选择排序
- C语言------选择排序
- 选择排序(C语言)
- C语言选择排序
- 选择排序 --C语言数据结构
- 数据结构--选择排序(C语言)
- static_cast, dynamic_cast, const_cast探讨
- SecureCRT配色方案
- STL algorithm算法fill(14)
- Java排序之插入排序[二分、折半插入排序](4)
- 求一个集合的所有子集
- C语言、python、go、C#版本选择排序
- bootstrap学习之路
- 你完全可以把技术提高一个档次
- 软件开发环境
- 实现背景颜色(backgroundColor)的动画效果(animate)
- [Python]解释器的几种实现版本
- USACO 40 The Perfect Stall
- STL algorithm算法fill_n(15)
- 有用的链接(数据获取、项目管理)