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. Tim定时器初始化的方法

    #include "stm32f10x.h" // Device header void TimerInit(void) { RCC_APB1PeriphClockCmd(RCC_ ...

  2. dsu on tree 模板

    dsu on tree模板运用 例题以及代码: U41492 树上数颜色 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 记录详情 - 洛谷 | 计算机科学教育新生态 (luogu. ...

  3. SMCA:港中文提出注意力图校准的DETR加速方案 | ICCV 2021

    为了加速DETR收敛,论文提出了简单而有效的Spatially Modulated Co-Attention(SMCA)机制,通过在初始边界框位置给予较高的协同注意力响应值的约束来构建DETR的回归感 ...

  4. nginx编译安装-麒麟v10Arm64

    环境信息 操作系统: Kylin Linux Advanced Server V10 (Lance) 架构:Arm keepalived版本:1.25.5 编译 安装依赖包 yum install g ...

  5. redis-cli命令行工具使用

    redis 6.2.8 1.连接 ./redis-cli -h 127.0.0.1 -p 6379 -a admin@2020 -h redis主机地址 -a redis密码 -p redis端口 2 ...

  6. .NET 智能组件完全开源

    Daniel Roth在2024年3月20日发布了一篇文章: .NET 智能组件简介 – AI 驱动的 UI 控件.文章主要介绍了.NET Smart Components,这是一系列可以快速轻松地添 ...

  7. RabbitMQ接口封装

    1.引用 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client< ...

  8. man 切换颜色配置

    man 命令显示的命令手册默认是没有颜色的.为了使 man 命令的输出更为生动,可以使用如下两种方法修改 man 命令的颜色配置. 方法一:设置环境变量 在你的 .zshrc / .bashrc 中添 ...

  9. el-submenu 设定title不显示

    原因为 插槽中有空格 slot=" title" 修改为 slot="title"即可

  10. 常回家看看之house_of_cat

    house_of_cat 前言: house of cat 这个利用手法和前面提到的 house of kiwi ,和 house of emma 利用的手法是一个链子,当程序无法通过main函数返回 ...