zoukankan      html  css  js  c++  java
  • 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));
    
  • 相关阅读:
    SVN
    Oracle用户、权限、角色管理(转)
    X5学习笔记—给单元格添加颜色
    JdbcTemplae使用入门&&Spring三种连接池配置&&Spring配置文件引用外部properties文件
    依赖注入Bean属性
    IoC容器装配Bean(xml配置方式)(Bean的生命周期)
    Spring配置文件的读取
    Spring IoC反转控制的快速入门
    spring security 权限框架原理
    win7 开机,或重启自动启动 该文件下的
  • 原文地址:https://www.cnblogs.com/ikai/p/11589733.html
Copyright © 2011-2022 走看看