二分查找法 冒泡排序法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找法 冒泡排序法相关的知识,希望对你有一定的参考价值。

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;

缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。

首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;

否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。

重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

二分查找法必须遵循:

1.必须采用顺序存储结构

2.必须按关键字大小有序排列。

 

冒泡排序

 

冒泡排序是一种简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。

 

冒泡排序算法的运作如下:(从后往前)

?1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

 

JAVA冒泡排序

代码:

 1 public class BubbleSort{
 2      public static void main(String[] args){
 3          int score[] = {67, 69, 75, 87, 89, 90, 99, 100};
 4          for (int i = 0; i < score.length -1; i++){    //最多做n-1趟排序
 5              for(int j = 0 ;j < score.length - i - 1; j++){    //对当前无序区间score[0......length-i-1]进行排序
 6                  if(score[j] < score[j + 1]){    //把小的值交换到后面
 7                      int temp = score[j];
 8                      score[j] = score[j + 1];
 9                      score[j + 1] = temp;
10                  }
11              }            
12              System.out.print("第" + (i + 1) + "次排序结果:");
13              for(int a = 0; a < score.length; a++){
14                  System.out.print(score[a] + "\t");
15              }
16              System.out.println("");
17          }
18              System.out.print("最终排序结果:");
19              for(int a = 0; a < score.length; a++){
20                  System.out.print(score[a] + "\t");
21         }
22      }
23  }
技术分享
https://zh.m.wikipedia.org/wiki/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F#。【是我FQ出去找的维基百科资料】
 
技术分享
 
 
 

以上是关于二分查找法 冒泡排序法的主要内容,如果未能解决你的问题,请参考以下文章

Java学习 数组,查找算法,二分查找法,冒泡排序,选择排序,插入排序

二分查找法

二分查找法

二分查找法 冒泡排序法

冒泡排序,递归二分查找法,二分查找法

二分查找法