• python php 冒泡排序


    #!/usr/bin/python
    #coding=UTF-8
    
    def bubble_sort(li): #循环列表每次拿出一个值,和列表中所有的值进行比较之后然后切换位置
    	for i in range(len(li)-1): #躺数循环 最后一个数不用比较 已经是最大或者最小的数 所以躺数减少1
    		exchange = False  #增加标识 以减少循环次数 
    		for j in range(len(li)-i-1): # len(li)-i 表示列表中剩下的无序的列表。每比较一次 则剩下的列表长度减少i。无序列表躺数
    			if li[j] > li[j+1]: #第一个数和第二个进行比较 如果第一个数大于第二个数就进行交换(升序)
    				# if li[j] < li[j+1]: 第一个数小于第二个数就进行交换(降序)
    				li[j],li[j+1] = li[j+1],li[j]
    				exchange = True # 如果发生交换,那么证明列表中还是有需要进行比较 即无序状态
    				#print li
    		if not exchange:  #如果没有发生改变,那么已经排序完毕,结束循环(对于不是非常混乱的列表,可以减少循环次数,节省时间,结束算法即可)
    				return	li
    
    #冒泡排序 在为改进之前的时间复杂度是 O(n^2) 在改进之后【exchange = False  #增加标识 以减少循环次数】最优情况为O(n) 
    li = [1,0,3,4,2,9,7,8,5]
    print li
    if __name__ == "__main__":
    	print bubble_sort(li)
    
    _________
    //冒泡排序 php
    function bubble_sort($li)
    {
    	$li_lenght = count($li)-1;
    	for ($i=0; $i < $li_lenght; $i++) { 
    		$exchange = False ;
    		for ($j=0; $j < $li_lenght - $i; $j++) { 
    			if ($li[$j] > $li[$j+1]) {
    				$temp = $li[$j];
    				$li[$j] = $li[$j+1];
    				$li[$j+1] = $temp;
    				$exchange = True;
    			}
    		}
    		if (!$exchange) {
    			return $li;
    		}
    	}	
    }
    $li = [1,0,3,4,2,9,7,8,5];
    //$li = [1,2,3,4,5,6,7,8,9];
    
    //echo search($li,10);
    //echo binary_search($li,9);
    var_dump( bubble_sort($li));
    
  • 相关阅读:
    swift网络数据请求方法
    使用jQuery在javascript中自定义事件
    javascript循环事件只响应最后一次的问题处理
    关于PHP 时区错误的问题
    安装MySql出现Error Nr.1045的解决办法
    view的阴影效果shadowColor
    关于Swift中的泛函数find的问题
    [BZOJ3196][Tyvj1730]二逼平衡树
    [BZOJ4671]异或图
    [BZOJ4621]Tc605
  • 原文地址:https://www.cnblogs.com/ikai/p/11589733.html
Copyright © 2020-2023  润新知