php几种常用的算法
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几种常用的算法的更多相关文章
- 几种常用hash算法及原理
计算理论中,没有Hash函数的说法,只有单向函数的说法.所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据.用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很 ...
- 几种常用排序算法的python实现
1:快速排序 思想: 任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序. 一趟快速排序的算法是: 1)设置 ...
- 用 Java 实现的八种常用排序算法
八种排序算法可以按照如图分类 交换排序 所谓交换,就是序列中任意两个元素进行比较,根据比较结果来交换各自在序列中的位置,以此达到排序的目的. 1. 冒泡排序 冒泡排序是一种简单的交换排序算法,以升序排 ...
- Java种八种常用排序算法
1 直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数……直 ...
- 几种常用排序算法代码实现和基本优化(持续更新ing..)
插入排序(InsertSort): 插入排序的基本思想:元素逐个遍历,在每次遍历的循环中,都要跟之前的元素做比较并“交换”元素,直到放在“合适的位置上”. 插入排序的特点:时间复杂度是随着待排数组的有 ...
- 面试中常用排序算法实现(Java)
当我们进行数据处理的时候,往往需要对数据进行查找操作,一个有序的数据集往往能够在高效的查找算法下快速得到结果.所以排序的效率就会显的十分重要,本篇我们将着重的介绍几个常见的排序算法,涉及如下内容: 排 ...
- DotNet常用排序算法总结
数据结构和算法对一个程序来说是至关重要的,现在介绍一下几种算法,在项目中较为常用的算法有:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等7中算法. 现在介绍选择排序算法, ...
- DotNet中几种常用的加密算法
在.NET项目中,我们较多的使用到加密这个操作.因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要.现在提供几种常用的加密/解密算法. 1.用于文本和Base64编码文本的互 ...
- 《BI那点儿事》浅析十三种常用的数据挖掘的技术
一.前沿 数据挖掘就是从大量的.不完全的.有噪声的.模糊的.随机的数据中,提取隐含在其中的.人们事先不知道的但又是潜在有用的信息和知识的过程.数据挖掘的任务是从数据集中发现模式,可以发现的模式有很多种 ...
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...
随机推荐
- jQuery的基本操作总结
什么是jquery? 就是一个用js的插件库 解决了原生dom的操作的兼容性和代码量 使用前需要引入它的js库 以下例子以 jQuery1.12.4.js 这个版本为例 一:jQuery入口函数 ...
- java判断文本文件编码格式
上篇文章需要读取当前java或者配置文件的编码格式,这里主要支持UTF-8.GBK.UTF-16.Unicode等 /** * 判断文件的编码格式 * @param fileName :file * ...
- .NET 智能组件完全开源
Daniel Roth在2024年3月20日发布了一篇文章: .NET 智能组件简介 – AI 驱动的 UI 控件.文章主要介绍了.NET Smart Components,这是一系列可以快速轻松地添 ...
- TCP/TP协议栈(逐渐更新版)
TCP/IP协议栈 应用层 DNS协议 传输层 TCP协议 TCP协议报文结构 源端口 目的端口 序列号 确认号 头长度header length or data offset 保留字段reserve ...
- STM32的bootloader探究
OTA OTA(Over-The-Air Technology,空中下载技术)是一种通过无线网络对设备进行远程升级的技术.这种技术最初在PC电脑和移动手机行业中得到应用,近年来在汽车行业中也得到了广泛 ...
- 小程序云开发 Collection.watch 监听器构建和销毁
小程序云开发 Collection.watch 监听器构建和销毁 构建和销毁代码示例 // release/chatroom/index.js const db = wx.cloud.database ...
- Asp.net core 学习笔记 dotnet & azure 常用 command
更新: 2021-08-26 最近试了一下 vs 2022 结果 .net cli 也自动升级到 .net 6 preview 版本, 害我 dotnet new 的时候出来一个 .net 6 tem ...
- 手撸MQ消息队列——循环数组
队列是咱们开发中经常使用到的一种数据结构,它与栈的结构类似.然而栈是后进先出,而队列是先进先出,说的专业一点就是FIFO.在生活中到处都可以找到队列的,最常见的就是排队,吃饭排队,上地铁排队,其他就不 ...
- SqlEs-像使用数据库一样使用Elasticsearch
SqlEs SqlEs是Elasticsearch的客户端JDBC驱动程序,支持采用sql语法操作Elasticsearch.SqlEs构建在RestHighLevelClient,屏蔽了RestHi ...
- Ant Design Vue 在表格中插入图片
这两天一直在用 Antdv 做一些小 demo,今天在做表格的时候想在表格中插入图片,简单翻了下文档和国内的博客,发现所有的方法竟然都不好使,最后还是在官网的示例代码中看到相关的部分,不得不说这种 u ...