zoukankan      html  css  js  c++  java
  • 算法基础之排序(1)--冒泡排序 改进

     1     /**********************************************************************************************************          
     2     * Function        : test          
     3     * Create Date     : 2014/03/23         
     4     * Author          : NTSK13          
     5     * Email           : beijiwei@qq.com          
     6     * Copyright       : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。          
     7                                  任何单位和个人不经本人允许不得用于商业用途          
     8                                  转载请注明 转自 http://blog.csdn.net/beijiwei          
     9     * Version          : V0.1            
    10     * date             : 2014/03/23        
    11     * history          : V0.1             
    12     ***********************************************************************************************************          
    13                
    14     算法基础之排序(1)--冒泡排序 改进
    15      
    16      
    17     基本思想: 对待排序的一组数据从前之后进行扫描,若发现相邻的两个数不同时,将这两个数进行交换. 
    18               升序和降序是同样道理.  
    19      
    20      假如待排序的一组数存于array[N],则需要对数组进行N-1次扫描 
    21       
    22      第1次扫描:  array[0]和array[1]对比交换,之后array[1]和array[2]对比交换...array[N-1] 和array[N]对比交换. 
    23      第2次扫描: array[0]和array[1]对比交换,之后array[1]和array[2]对比交换...array[N-1] 和array[N]对比交换. 
    24        . 
    25        . 
    26        . 
    27      第N-1次扫描: array[0]和array[1]对比交换,之后array[1]和array[2]对比交换...array[N-1] 和array[N]对比交换. 
    28      结束. 
    29      
    30     缺点:     如果N>>100很大,当在第3次扫描结束之后,发现数据已经按照要求排列好了, 则以后的操作就是浪费功夫. 
    31                 
    32     改进:     在一次扫描时,设一个标志位,若某次扫描结束,标志位没有置位,则退出 
    33      
    34      
    35     **********************************************************************************************************/                    
    36     #include<stdio.h>                     
    37                                               
    38     int main()                    
    39     {                    
    40         int i=0,j=0,tmp=0,flag=0;  
    41         int array[10]={1,2,0,3,4,5,6,7,8,9};      
    42             
    43         printf("Before sort, The element of array is: 
    ");      
    44         
    45         for(i=0;i<10;i++)    47             printf("%d 	",array[i]);       49     /*********************************************************************************************************/    
    50         for(i=0;i<9;i++)    
    51         {  
    52             flag=0;  
    53             for(j=0;j<9;j++)    
    54             {    
    55                 if(array[j]>array[j+1])    
    56                 {    
    57                     tmp=array[j];    
    58                     array[j]=array[j+1];    
    59                     array[j+1]=tmp;  
    60                     flag=1;  
    61                 }    
    62             
    63             }  
    64             if(flag==0)  
    65                 break;    
    66         }  
    67     /*********************************************************************************************************/    
    68         printf("
     After sort, The element of array is: 
    ");      
    69         for(i=0;i<10;i++)    71             printf("%d 	",array[i]);       73           
    74         printf("
    ");       
    75         
    76         return 0;      
    77     }      
  • 相关阅读:
    I00038 自守数(Automorphic number)
    I00036 盈数(Abundant number)
    I00036 盈数(Abundant number)
    I00037 亏数(Deficient number)
    I00037 亏数(Deficient number)
    I00035 完美数(Perfect number)
    I00035 完美数(Perfect number)
    I00034 累加与累乘
    I00034 累加与累乘
    codeforces589J 简单dfs,队列
  • 原文地址:https://www.cnblogs.com/ntsk13/p/3701355.html
Copyright © 2011-2022 走看看