数组的排序方法
2012-03-26 22:19
120 查看
数组的排序方法
分为两在类:
1、内(内存)部排序
2、外部排序(数据量很大,内存放不下,需要借助外部
存储)
----------------
排序sorting是一个程序员的基本功
一:内部排序
(1)交换式排序
1、冒泡法
数组默认的传递是值传递,而不是地址传递
后面将讲到对象类型,对象默认的传递就是地址传递
//优化,将冒泡排序法封装成函数,利于以后使用
function bubbleSort(&$myarr){
$temp=0;//定义一个中间变量
//外层循环
for($i=0;$i<count($myarr)-1;$i++){
for($j=0;$j<count($myarr)-1-$i;
$j++){
if($myarr[$j]>$myarr[$j
+1]){
$temp=$myarr[$j];
$myarr[$j]=
$myarr[$j+1];
$myarr[$j+1]=
$temp;
}
}
}
}
$arry=array(2,6,-4,7,9,0);
bubbleSort($arry);
print_r($arry);
2、快速排序法(神奇的快速,涉及到递归)
3、选择排序法
function selectSort(&$myarr){
$temp=0;
for($i=0;$i<count($myarr)-1;$i++){
//假设$i就是最小的数
$minval=$myarr[$i];
//记录我认为的最小数的下标
$minIndex=$i;
for($j=$i+1;$j<count($myarr);$j+
+){
//说明我们认为的最小值,不是最小
if($minval>$myarr[$j]){
$minval=$myarr[$j];
$minIndex=$j;
}
}
//最后交换
$temp=$myarr[$i];
$myarr[$i]=$myarr[$minIndex];
$myarr[$minIndex]=$temp;
}
}
4、插入排序法
查询速度:
冒泡排序法<选择排序法<插入排序法
提升自己:
研究linux内核
研究算法
研究网络技术(网络安全)
研究数据库
二:外部排序
分为两在类:
1、内(内存)部排序
2、外部排序(数据量很大,内存放不下,需要借助外部
存储)
----------------
排序sorting是一个程序员的基本功
一:内部排序
(1)交换式排序
1、冒泡法
数组默认的传递是值传递,而不是地址传递
后面将讲到对象类型,对象默认的传递就是地址传递
//优化,将冒泡排序法封装成函数,利于以后使用
function bubbleSort(&$myarr){
$temp=0;//定义一个中间变量
//外层循环
for($i=0;$i<count($myarr)-1;$i++){
for($j=0;$j<count($myarr)-1-$i;
$j++){
if($myarr[$j]>$myarr[$j
+1]){
$temp=$myarr[$j];
$myarr[$j]=
$myarr[$j+1];
$myarr[$j+1]=
$temp;
}
}
}
}
$arry=array(2,6,-4,7,9,0);
bubbleSort($arry);
print_r($arry);
2、快速排序法(神奇的快速,涉及到递归)
3、选择排序法
function selectSort(&$myarr){
$temp=0;
for($i=0;$i<count($myarr)-1;$i++){
//假设$i就是最小的数
$minval=$myarr[$i];
//记录我认为的最小数的下标
$minIndex=$i;
for($j=$i+1;$j<count($myarr);$j+
+){
//说明我们认为的最小值,不是最小
if($minval>$myarr[$j]){
$minval=$myarr[$j];
$minIndex=$j;
}
}
//最后交换
$temp=$myarr[$i];
$myarr[$i]=$myarr[$minIndex];
$myarr[$minIndex]=$temp;
}
}
4、插入排序法
查询速度:
冒泡排序法<选择排序法<插入排序法
提升自己:
研究linux内核
研究算法
研究网络技术(网络安全)
研究数据库
二:外部排序
相关文章推荐
- java中数组排序arrays.sort方法应用
- js高级程序设计(第三版)总结--数组重排序方法 reverse() 和 sort()的用法
- 算法方法JAVA中运用数组的四种排序方法
- 数组排序方法的性能比较(3):LINQ排序实现分析
- C# 数组排序的方法
- PHP实现对多维数组按照某个键值排序的两种解决方法
- js数组排序sort方法
- 几种常见的数组排序方法
- 关于网上搜查得到的3DC3的基于字符串后缀数组的排序方法的怀疑
- 数组补充 及二位数组 排序方法 冒泡
- 洗牌方法-----JS数组随机排序
- awk 数组排序多种实现方法
- java数组的四种排序方法
- JavaScript对象数组排序实例方法浅析
- Java中运用数组的四种排序方法
- C语言程序中对多维数组中以某一维数据进行排序的一种方法
- OC中常用的数组排序有以下几种方法
- 一维数组排序的两种方法
- 四种数组排序方法 20170801
- iOS开发之把数组中的元素进行随机排序、随机数产生的几种方法