1 <?php
2
3 // 选择排序
4
5 function select_sort($arr)
6
7 {
8
9 $count = count($arr);
10
11 for ($i = 0; $i < $count; $i ++) {
12
13 $k = $i;
14
15 for ($j = $i + 1; $j < $count; $j ++) {
16
17 if ($arr[$k] > $arr[$j])
18
19 $k = $j;
20
21 if ($k != $i) {
22
23 $tmp = $arr[$i];
24
25 $arr[$i] = $arr[$k];
26
27 $arr[$k] = $tmp;
28
29 }
30
31 }
32
33 }
34
35 return $arr;
36
37 }
38
39
40
41 // 插入排序
42
43 function insert_sort($arr)
44
45 {
46
47 $count = count($arr);
48
49 for ($i = 1; $i < $count; $i ++) {
50
51 $tmp = $arr[$i];
52
53 $j = $i - 1;
54
55 while ($arr[$j] > $tmp) {
56
57 $arr[$j + 1] = $arr[$j];
58
59 $arr[$j] = $tmp;
60
61 $j;
62
63 }
64
65 }
66
67 return $arr;
68
69 }
70
71 // 快速排序法
72
73 function quick($array)
74
75 {
76
77 if (count($array) <= 1) {
78
79 return $array;
80
81 }
82
83 $key = $array[0];
84
85 $l = array();
86
87 $r = array();
88
89 for($i=1;$i {
90
91
92
93 if ($array[$i] <= $key) {
94
95 $l[] = $array[$i];
96
97 } else {
98
99 $r[] = $array[$i];
100
101 }
102
103 }
104
105
106
107 $l = quick($l);
108
109 $r = quick($r);
110
111 return array_merge($l, array(
112
113 $key
114
115 ), $r);
116
117 }
118
119
120
121 //冒泡排序
122
123 function maopao($arr)
124
125 {
126
127 $n = count($arr);
128
129 for($j=0;$j<$n-1;$j++)
130
131 {
132
133 for($i=$j+1;$i<=$n-1;$i++) {
134
135 if($arr[$j]>$arr[$i])
136
137 {
138
139 $t = $arr[$i];
140
141 $arr[$i] = $arr[$j];
142
143 $arr[$j]=$t;
144
145 }
146
147 }
148
149 }
150
151 return $arr;
152
153 }

php几种常用的算法的更多相关文章

  1. 几种常用hash算法及原理

    计算理论中,没有Hash函数的说法,只有单向函数的说法.所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据.用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很 ...

  2. 几种常用排序算法的python实现

    1:快速排序 思想: 任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序. 一趟快速排序的算法是: 1)设置 ...

  3. 用 Java 实现的八种常用排序算法

    八种排序算法可以按照如图分类 交换排序 所谓交换,就是序列中任意两个元素进行比较,根据比较结果来交换各自在序列中的位置,以此达到排序的目的. 1. 冒泡排序 冒泡排序是一种简单的交换排序算法,以升序排 ...

  4. Java种八种常用排序算法

    1 直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数……直 ...

  5. 几种常用排序算法代码实现和基本优化(持续更新ing..)

    插入排序(InsertSort): 插入排序的基本思想:元素逐个遍历,在每次遍历的循环中,都要跟之前的元素做比较并“交换”元素,直到放在“合适的位置上”. 插入排序的特点:时间复杂度是随着待排数组的有 ...

  6. 面试中常用排序算法实现(Java)

    当我们进行数据处理的时候,往往需要对数据进行查找操作,一个有序的数据集往往能够在高效的查找算法下快速得到结果.所以排序的效率就会显的十分重要,本篇我们将着重的介绍几个常见的排序算法,涉及如下内容: 排 ...

  7. DotNet常用排序算法总结

    数据结构和算法对一个程序来说是至关重要的,现在介绍一下几种算法,在项目中较为常用的算法有:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等7中算法. 现在介绍选择排序算法, ...

  8. DotNet中几种常用的加密算法

    在.NET项目中,我们较多的使用到加密这个操作.因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要.现在提供几种常用的加密/解密算法. 1.用于文本和Base64编码文本的互 ...

  9. 《BI那点儿事》浅析十三种常用的数据挖掘的技术

    一.前沿 数据挖掘就是从大量的.不完全的.有噪声的.模糊的.随机的数据中,提取隐含在其中的.人们事先不知道的但又是潜在有用的信息和知识的过程.数据挖掘的任务是从数据集中发现模式,可以发现的模式有很多种 ...

  10. Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...

随机推荐

  1. RabbitMq高级特性之延迟队列 通俗易懂 超详细 【内含案例】

    RabbitMq高级特性之延迟队列 介绍 消息进入队列后不能立即被消费,到达指定时间后才可被消费 实现 结合以下两种即可达到延迟队列 RabbitMq高级特性之TTL过期时间 RabbitMq高级特性 ...

  2. springcloud feign集成hystrix

    本章介绍feign集成hystrix 1.增加pom依赖` <dependency> <groupid>org.springframework.cloud</groupi ...

  3. Git删除当前分支下的所有历史版本与log

  4. shell编程入门-适合小白

    一.变量的使用 1. 变量命名 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="yikoulinux" 注意,变量名和等号之间不能有空格,这 ...

  5. 9k star 监控系统,100% 国产,推荐了解

    前言 监控系统的重要性不言而喻,国内用的最多的应该是 Zabbix 和 Prometheus,其优缺点: Zabbix 是资产管理式,监控数据存在数据库中,擅长设备监控,不擅长微服务和云原生环境的监控 ...

  6. 使用Istio服务网格进行微服务网络治理

    在Rainbond中,用户可以对不同的应用设置不同的治理模式,即用户可以通过切换应用的治理模式,来按需治理应用,这样带来的好处便是用户可以不被某一个ServiceMesh框架所绑定,且可以快速试错,能 ...

  7. SNMP基础概念

    一.什么是SNMP?     SNMP=Simple Network Management Protocol (简单网络管理协议) SNMP是被广泛接受并投入使用的工业标准,提供了一个框架来定义管理信 ...

  8. Vue使用v-for 循环生成tabs 标签页

    实现最终效果: template代码: activeName:默认第一个显示的tab <el-tabs v-model="activeName" type="car ...

  9. BibTeX 和 BibLaTeX

    BibTeX:传统的参考文献处理工具,使用 .bst 文件来定义参考文献的样式. BibLaTeX:功能更强大且更现代的工具,使用 .bbx..cbx 和 .dbx 文件来定义参考文献和引用的样式. ...

  10. Windows 11 上搭建 Linux 桌面系统

    为什么做这个事呢?首先dev 环境方面肯定Linux是主流,然后因为后面要跑CV应用,肯定还是要看看效果啥的,最好有个桌面系统. 1. 首先在windows 里安装 WSL, 要用 wsl2 版本 2 ...