python冒泡排序,php获取数组最后一个元素的方法

2019-09-25 20:35栏目:网络技术
TAG:

小编给大家推荐的这篇文章介绍了php获取数组最后一个元素的教程,非常实用,有兴趣的同学快来看看吧!

python冒泡排序
一种简单的排序算法。
比较相邻的两个元素,如果第一个比第二个大,那么就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码如下:

  • h1:first-of-type 指向第一个h1元素。主要是针对元素而言。在box1中,寻找第一个h1元素,在box2中,寻找第一个h1元素,即元素.type。
  • h1:first-child 指向容器中的第一个元素。主要是对容器而言。在box1中,第一个元素是div,不是h1,所以box1中未找到元素,在box2中,第一个元素是h1,所以就是该.child元素。
$array=array(1,2,3,4,5);  


echo $array[count($array)-1];//计算数组长度,然后获取数组最后一个元素,如果数组中最后一个元素含有非数字键名,结果可能跟预期不符合  
//适用于键名为数字的数组  


echo '<br>';  
echo end($array);//将数组的内部指针指向最后一个单元,适用于所有数组  


rsort($array);//对数组逆向排序,如果数组中含有字母或汉字,结果可能不符合预期,最适用于数字数组
echo $array[0];
seq = [5,4,3,2,1]
print '排序前:',seq
for i in range(len(seq)-1): #这个循环 是循环次数,不是数组下标。
    for j in range(len(seq)-1-i): #这个循环才是真正的数组下标。
        if seq[j] > seq[j+1]:
            seq[j], seq[j + 1] = seq[j + 1], seq[j]

print '排序后:',seq

删除最后一个元素

运行结果如下:

    <div class="box1">
        <div class="box2">
            <h1 class="type child"></h1>
        </div>
        <h1 class="type"></h1>
        <h1></h1>
    </div>
<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);//www.111cn.net
?>
经过此操作后,$stack 将只有 3 个单元:
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

图片 1

  • h1:last-of-type 指向最后一个h1元素。主要是针对元素而言。在box1中,寻找最后一个h1元素,在box2中,寻找最后一个h1元素,即元素.type。
  • h1:last-child 指向容器中的最后一个元素。主要是对容器中的位置而言。在box1中,最后一个元素是h1,在box2中,最后一个元素是h1,所以就是.child元素。

image.png

1. 第一个循环是循环 次数,多少个元素就循环len(seq)-1次,不是数组的下标。

    <div class="box1">
        <div class="box2">
            <h1 class="type child"></h1>
        </div>
        <h1></h1>
        <h1 class="type child"></h1>
    </div>

2. 第二个循环才是真正的数组 下标 。循环len(seq)-i-1次。

下面解释一下 为什么第一个for 循环len(seq)-1次。
seq有五个元素,每次循环的时候,都拿一个元素对比其他元素。当对比到第四次的时候,其实整个数组已经是排序好的了

seq = [5,4,3,2,1]
print '排序前:',seq
for i in range(len(seq)): #这个循环 是循环次数,不是数组下标。
    for j in range(len(seq)-i-1): #这个循环才是真正的数组下标。
        if seq[j] > seq[j+1]:
            seq[j], seq[j + 1] = seq[j + 1], seq[j]
    print '排序进行时:第 %s 次循环后,排序好的数组 ' % (i + 1), seq
print '排序后:',seq

不减1的情况下

图片 2

image.png

减1的情况下:

图片 3

image.png

第二个for 循环len(seq)-1-i次
为什么要减去 i 呢?
我们看一下上面的运行结果图,
第一次循环时,最后一个元素是随机的元素,此时 i == 0,
第二次循环时,因为最后一个元素是最大的元素了,完全没必要在对比一次了,所以就把最后一个元素pass了,此时 i == 1,所以 len(seq)- 1 - i,剔除最后一个元素。
第三次循环,最后两个元素是整个数组最大的元素,所以最后两个元素完全没必要进行对比,所以pass掉最后两个元素,此时 i == 2,所以 len(seq)-1-i,剔除最后两个元素。
以此类推,直到循环结束。

另外,:nth-of-type(n) 和 :nth-child(n) 也类似。

最后加强记忆 属性选择器 如 input[type='text'] img[src="xxx"]

版权声明:本文由澳门新葡亰平台游戏发布于网络技术,转载请注明出处:python冒泡排序,php获取数组最后一个元素的方法