`
ordinary
  • 浏览: 79478 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

计算机程序设计艺术-----冒泡排序

阅读更多
冒泡排序:一种最简单的排序算法。
基本思想:依次比较两数,保证小数在前,大数在后。
有两种方案:一、在每趟选出最小数,二、每趟选出最大数。
每趟选出最大数的实现思想是:在第一趟,比较第一个数和第二个数,如果第一个数大于第二个数,交换这两个数,比较第二个数和第三个数,如果第二个数大于第三个数,交换这两个数,依次类推,比较倒数第二个数和最后一个数,如果倒数第二数大于最后一个数,交换这两个数,最后一个数就是最大数;第二趟,比较第一个数和第二个数,如果第一个数大于第二个数,交换这两个数,依次类推,直到比较倒数第三数和倒数第二数,如果倒数第三数比倒数第二数大,交换这两数,这样倒数第二数就是第二大数,依次类推,直到排好序。


算法实现:
   for(int i=n;i>1;i--){
   for(int j=1;j<i;j++){
   if(a[j]>a[j+1]){
   swap(a[j],a[j+1]);
   }
   }
}
冒泡排序的改进(鸡尾混合排序):
基本思想:依次比较两数,保证小数在前,大数在后。
方案:交替选出最大数,最小数。
实现:在第一趟,比较第一个数和第二个数,如果第一个数大于第二个数,交换这两个数,比较第二个数和第三个数,如果第二个数大于第三个数,交换这两个数,依次类推,比较倒数第二个数和最后一个数,如果倒数第二数大于最后一个数,交换这两个数,最后一个数就是最大数;第二趟,比较倒数第二个数和倒数第三个数,当倒数第三个数大于倒数第二个数时,交换这两个数,依次类推直到比较第一个数和第二个数,如果第一个大于第二个数,交换这两个数,这样第一个数就是最小数,依次类推,直到排好序。

代码: int start=1;
int end=n;
int r=1;
boolean orientationFlat=true;//如果为true,则r++,否则r--
while(start<end){
if(a[r]>a[r+1]){//判断
swap(a[r],a[r+1]);
}
if(r==end-1){
end--;
orientationFlat=false;
}
if(r==start){
start++;
orientationFlat=true;
}
if(orientationFlat){
r++;
}
else{
r--;
}
}
分享到:
评论

相关推荐

    计算机程序设计艺术-第3版-中文版 PDF

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由世界著名计算机科学家Donald E. Knuth撰写。这套书深入探讨了程序设计的各种方法和技术,包括基础算法、半数值算法和排序与查找算法,对全球程序员和...

    计算机程序设计艺术-高德纳

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由美国计算机科学家唐·艾伦·高德纳(Donald Ervin Knuth)撰写。这部多卷本巨著深入探讨了算法设计、分析以及编程语言的设计原理,对于理解计算机科学的...

    《计算机程序设计艺术(第3卷)》 第3卷:排序与查找 (第二版) 高清中文版 PDF

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由著名计算机科学家Donald Knuth撰写。这本书的第3卷专门探讨了排序与查找这两个核心的算法主题,它们是编程和数据处理的基础。在本卷中,Knuth深入剖析了...

    计算机程序设计艺术1-3卷.zip

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由美国计算机科学家Donald E. Knuth撰写。这套书籍涵盖了程序设计、算法分析以及计算理论等多个方面的深度内容,对程序员、软件工程师以及计算机科学学者...

    计算机程序设计艺术,扫描版,全三卷

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由著名计算机科学家Donald Knuth撰写。这套书系统地探讨了程序设计的理论和实践,涵盖了从基础算法到复杂数据结构的广泛主题,对于深入理解计算机科学的核心...

    计算机程序设计艺术+第3卷:排序与查找(第二版)高清中文版

    《计算机程序设计艺术》是由美国计算机科学家Donald Knuth所著的一套经典计算机科学丛书,它在IT领域享有极高的声誉,被众多专业人士视为必读之作,包括比尔·盖茨在内的许多技术大牛都曾给予高度评价。这套书籍深入...

    计算机程序设计艺术 第 3 卷 (中文版)

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由Donald E. Knuth撰写。这部巨著分为多卷,每一卷深入探讨了程序设计的各个方面。本问题中提到的是第3卷,虽然描述中提到了第2卷,但我们的焦点在于第3卷的...

    计算机程序设计艺术

    根据给定的信息,“计算机程序设计艺术”这一标题与描述中所蕴含的知识点主要涉及计算机科学领域内关于算法设计与分析的高级理论。以下是对这些知识点的深入探讨。 ### 计算机程序设计艺术 #### 一、算法设计的...

    《计算机程序设计艺术》全三卷中文版PDF

    《计算机程序设计艺术》是由计算机科学巨匠Donald E. Knuth所著的一部经典之作,全书分为七卷,但目前公开的只有前三卷。这部作品深入探讨了计算机编程的各个方面,是程序员和计算机科学家的重要参考文献。在这里,...

    计算机程序设计艺术(一,二,三卷)

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由美国计算机科学家Donald E. Knuth撰写。这套书籍共分为七卷,详细探讨了程序设计的各个方面,包括基础算法、数据结构、数值计算、字符串处理、图形算法...

    计算机程序设计艺术 第3卷 排序与查找(中文第2版) [高清完整版]

    - **贡献**:克努特以其对算法分析的深入研究而闻名于世,《计算机程序设计艺术》是他最著名的成就之一,该系列书籍详细阐述了算法的设计与分析。 #### 3. 内容提要 - **算法分析**:本书是关于算法分析的经典著作...

    计算机程序设计艺术(中文版)

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由世界著名的计算机科学家Donald E. Knuth撰写。这本书深入探讨了程序设计的原则、方法和技术,是程序员和计算机科学家的宝贵资源。中文版的出版使得更多...

    计算机程序设计艺术全三卷

    《计算机程序设计艺术》全三卷是一套由计算机科学巨擘Donald E. Knuth编著的经典著作,中文版包括三个PDF文档,全面深入地探讨了程序设计的精髓和技巧。这套书籍是程序员、计算机科学家以及对算法和软件工程感兴趣...

    计算机程序设计艺术(第三版)

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由著名计算机科学家Donald E. Knuth撰写。这部著作共分为七卷,其中包含了程序设计、算法分析和计算数学等多个方面的内容。在这里,我们重点关注第三版中的...

    计算机程序设计艺术第一卷(Donald E. Knuth)中文翻译

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由Donald E. Knuth撰写。这本书的中文翻译版本为中国的读者提供了深入理解编程原理和技术的机会。Donald E. Knuth,被誉为“计算机科学界的贝多芬”,是算法...

    计算机程序设计艺术 第 2 卷 (中文版)

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由Donald Ervin Knuth(D.E. Knuth)撰写。这本书分为多卷,全面而深入地探讨了程序设计的各个方面,特别是算法的设计与分析。第二卷,即我们讨论的重点,...

    计算机程序设计艺术第1卷中文版

    《计算机程序设计艺术》是由Donald E. Knuth编写的计算机算法理论的经典著作,第一卷名为《基础算法》(Fundamental Algorithms),这本系列书籍被广泛认为是计算机科学领域的权威著作之一,是学习算法和数据结构不...

    计算机程序设计艺术part1

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由世界知名计算机科学家Donald E. Knuth撰写。这本书深入探讨了编程的艺术与科学,旨在提高软件的质量和开发者的技艺。Part1,即第一卷的“基本算法”,是...

    计算机程序设计艺术(第3卷)

    《计算机程序设计艺术》是计算机科学领域的一部经典著作,由著名计算机科学家Donald Knuth撰写。这部系列作品全面深入地探讨了程序设计的各个方面,旨在提高程序员的技艺和软件的质量。第三卷,通常称为“排序与搜索...

    计算机程序设计艺术 全3卷

    《计算机程序设计艺术》全三卷是一套极富影响力的计算机科学经典著作,由著名计算机科学家Donald E. Knuth撰写。这套书系统地阐述了程序设计的理论与实践,旨在提高软件开发者的技能和理解,是计算机科学教育和研究...

Global site tag (gtag.js) - Google Analytics