论文网
English Papers
万事OK网
发表论文
 
 首页 > IT文章 > 程序设计 >
对冒泡算法的改进

[科技论文网] http://www.scipapers.com    2007-12-01  

    对冒泡算法的改进

    对一组无序的数字进行排序,冒泡方法是我们常用的一种方法。它的主要思想是对相临的两个数字进行比较然后选较大(小)的一个起来,另一个沉下去。对N个数字,我们需要进行N-1趟,但是有时候我们根本不需要对每一组数字从头到尾都进行遍历,我们指需对那部分无序的地方排列即可完成任务,这样可以提高算法的质量。
     
    1
     对于一个本来就有序的数组,我门只遍历一边,就可以判断出它是有序的,然后结束任务。
     
    for (i = 0; i < 9 && tag ; i++) //tag 这里做一个标志,判断它是否已经有序了
       {
              tag = 0;
           for ( j = 0; j < 10 - i - 1; j++)
              {
                     if (a[j] > a[j+1])
                     {
                            temp = a[j];
                            a[j] = a[j+1];
                            a[j+1] = temp;
                         tag = 1;
                     }
              }
       }
     
    2
     对一组数据前部分有序后部分无序算法
    for(i = 0; i <= 8 && k >= 0 ; i++)
              {
                     k = -1;
              for(j = k+1; j <= 10-i-1 ; j++ )
              {
                     if(a[j] > a[j+1])
                     {
                            temp = a[j];
                            a[j] = a[j+1];
                            a[j+1] = temp;
                    
                            if (k == -1)
                            {
                               k = j + 1;
                          
                            }
     
                     } 
              }
     
     主要思想:
     我们主要是找到第一个交换的地点然后以这个点为起点对它后面的数字排序即可。
     
    3 对一组数据前无序后有序
    while(k1 >= 0)
       {
              k2 = k1;
              k1 = -1;
     
              for (i = 0; i < k2 ; i++)
              {
                     if (a[i] > a[i+1])
                     {
                            temp = a[i];
                            a[i] = a[i+1];
                            a[i+1] = temp;
                            k1 = i;
                     }
              }
     
       }
    主要思想:我们找到最后一次交换的点,以该点作为终点,然后从O到该点进行排序。
     
    但对于前无序中间有序后无序的情况,没进一步考虑,呵。
     
     
    如果有那里不足,希望大家给个意见,谢谢。

        来源:

声明:本文由网友推荐或作者提交,版权归原作者所有,刊登此文仅为传播知识,展示研究成果,提高文章引用率。未经原作者授权,禁止用于任何形式的商业行为。科技论文网倡导尊重知识、尊重劳动、保护原创、知识共享。由于部分论文文章来于网络,文章作者不祥,请相关的原创作者与我们联系,以便加上您的署名。

  
对冒泡算法的改进
下面没有链接了     杨辉三角算法源码
最新论文
·[程序设计]对冒泡算法的改进
·[程序设计]杨辉三角算法源码
·[程序设计] C脚本递归算法-计算八皇后问题
·[程序设计]经典算法-算术表达式求值
·[程序设计]顺序表上的插入算法
·[程序设计]并查集的最小生成树算法
·[程序设计]概率算法简介
·[程序设计]概率算法简介
·[程序设计]猴子选大王-C源代码
·[程序设计]快速字符串搜索算法KMP
 
 

搜索论文

Google
论文分类

论文网 论文发表网 论文 免费论文网 找论文网 毕业论文 中国论文网 英语论文 百度论文 聘教网 易搜
 免费发布论文    中国论文网 2008版权所有  业务联系:pinjiao@126.com