php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Python  /  管理员 发布于 7年前   197
本文实例讲述了php实现有序数组打印或排序的方法。分享给大家供大家参考,具体如下: 有序的数组打印或排序对于php来讲非常的简单了这里整理了几个不同语言的做法的实现代码,具体的我们一起来看这篇php中有序的数组打印或排序的例子吧. 最近有个面试题挺火的――把2个有序的数组打印或排序,刚看到这个题的时候也有点蒙,最优的算法肯定要用到有序的特性. 思考了一会发现也不是很难,假如数组是正序排列的,可以同时遍历2个数组,将小的值进行排序,最后会遍历完一个数组,留下一个非空数组,而且剩下的值肯定大于等于已经排好序的最大值. PHP代码: 运行得到的新数组为: 其他语言实现代码: Python 代码: C代码: GO代码: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP针对XML文件操作技巧总结》、《PHP错误与异常处理方法总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家PHP程序设计有所帮助。Array( [0] => 1 [1] => 2 [2] => 2 [3] => 3 [4] => 3 [5] => 4 [6] => 4 [7] => 5 [8] => 6 [9] => 10 [10] => 10 [11] => 10 [12] => 10)
def fib(a,b): len_a = len(a) c = [] while len(a) and len(b): if a[0] > b[0]: c.append(b.pop(0)) else: c.append(a.pop(0)) if len(a): c = c+a if len(b): c = c+b i=0 while i
#include <stdio.h>;int *sort(int a[], int b[], int a_len, int b_len) { int *temp = malloc(a_len+b_len); int i=0; //标注a数组 int j=0; //标注b数组 int m=0; //标注新数组 while (i<a_len&&j<b_len) { //重新排序 if(a[i]<b[j]) { temp[m++] = b[j++]; } else { temp[m++] = a[i++]; } } //将剩余的数字放在新数组后面(剩余的肯定是前面的数字大) if(i<a_len) { for (; i<a_len; i++) { temp[m++] = a[i]; } } if(j<b_len) { for (; j<b_len; j++) { temp[m++] = b[j]; } } return temp;}int main(int argc, const char * argv[]) { int a[4] = {2,3,11,89}; int b[6] = {4,6,9,10,22,55}; int a_len = sizeof(a) / sizeof(a[0]); int b_len = sizeof(b) / sizeof(b[0]); int *c = sort(a, b, a_len, b_len); int y = 0; for (; y<a_len+b_len; y++) { printf("%d ", c[y]); } return 0;}
import "fmt"
func main() {
var a = [5]int{1, 2, 3, 4, 5}
var b = [8]int{4, 5, 6, 7, 89, 100, 111, 112}
var len_a = len(a)
var len_b = len(b)
var c = make([]int, len_a+len_b)
var j = 0 //标注a数组
var k = 0 //标注b数组
var h = 0 //标注新数组
for j < len_a && k < len_b {
if a[j] > b[k] {
c[h] = b[k]
h++
k++
} else {
c[h] = a[j]
h++
j++
}
}
if j < len_a {
for i := j; i < len_a; i++ {
c[h] = a[i]
h++
}
}
if k < len_b {
for i := k; i < len_b; i++ {
c[h] = b[i]
h++
}
}
Print(c, "c")
}
/**
* [Print array]
* @param {[type]} o []int [array]
* @param {[type]} name string [array name]
*/
func Print(o []int, name string) {
fmt.Printf("%s: ", name)
for _, v := range o {
fmt.Printf("%d ", v)
}
fmt.Printf("\n")
}您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号