冒泡排序

     基本特点

      (1)基于交换思想的排序算法
        (2)从一端开始,逐个比较相邻的两个元素,发现倒序即交换。
          (3)一次遍历,一定能将其中最大(小)的元素交换到其最终位置上

    排序过程模拟

    

    代码实现

static void Bubble_Sort(int array[]){
for(int i=0;i<array.length;i++)
{
for(int j=0;j<array.length-i-1;j++)
{
if(array[j]<array[j+1])
{
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
System.out.print("第"+(i+1)+"次排序的结果:");
for(int c=0;c<array.length;c++)
{
System.out.print(array[c]+"\t");
}
System.out.println();
} System.out.print("最终排序结果:");
for(int c=0;c<array.length;c++){
System.out.print(array[c]+"\t");
}
}

       

快速排序

  基本思想

     选定一个元素作为中间元素,然后将表中所有元素与改中间元 素相比较,将表中比中间元素小的元素调到表的前面,将比中间元素大的元素 调到后面,再将中间元素放在

     这两部分之间以作为分界点,这样便得到一个划分。 然后再对左右两部分分别进行快速排序,直到每个子表仅有一个元素或为空表为止。

  划分方法

      1.中间元素的选择:作为参考点的中间数的选择没有特别的规定, 本次默认为第一个元素。

      2.中间元素所占空间可能被其他元素占用,为此,可先保存该元素的值到其他位置以腾出起空间。

      3.这样,前面便有一个空位置(i),可从最后面开始往前搜索一个比中间数大的元素,并将其放置到后面的这个位置上。

4.此刻,后面便有了一个空位置(j),可从前面开始往后搜索一个比中间数小的元素,并将其放置到前面的位置。4.重复1 2 ,直到两边搜索的空位重合(i=j)。

  排序过程模拟

     

  代码实现

static int partition(int array[],int start,int end){
int temp=array[start];
int i=start;
int j=end-1;
while(i!=j){
while(i<j&&array[j]>temp){
j--;
}
if(i<j){
array[i]=array[j];
i++;
}
while(i<j&&array[i]<temp){
i++;
}
if(i<j){
array[j]=array[i];
j--;
} }
array[i]=temp;
return i;
} static void QuickSort(int a[],int s,int e){
if(s<e){
int i=partition(a, s, e );
QuickSort(a, s,i-1);
QuickSort(a, i+1, e);
} }

     

     

最新文章

  1. Android业务组件化之URL Scheme使用
  2. BaaS API 设计规范
  3. MySQL基础
  4. Oracle行转列、列转行的Sql语句总结(转)
  5. 核心动画与UIView的区别
  6. Java基础之常用类
  7. Hadoop之Hive 安装_(hadoop 集群)
  8. PHP间隔一段时间执行
  9. 机器学习(3)-Tensorflow安装与测试
  10. Java 对远程文件的操作
  11. select 多选 (EasyUI)
  12. Scala泛型详解
  13. WebAPI的跨域访问CORS三种方法
  14. Cocos Creator 计时器的延时循环试用方法
  15. java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing,
  16. MVC下载文档
  17. java 当读取的结果为-1时候说明已经读取结束了
  18. 【单例模式】Singleton pattern
  19. JS动态修改微信浏览器中的title
  20. POJ 2255 Tree Recovery &amp;&amp; Ulm Local 1997 Tree Recovery (二叉树的前中后序遍历)

热门文章

  1. R 语言爬虫 之 cnblog博文爬取
  2. bootstarp v3 学习简记
  3. JS学习笔记--变量类型
  4. JQuery 解决按钮上的倒计时问题
  5. iOS开发网络缓存原理
  6. JavaSE 第二次学习随笔(String的坑 + ==)
  7. exec族函数
  8. react+redux状态管理实现排序 合并多个reducer文件
  9. C# 中的正则简单例子
  10. Kettle资源库配置(数据库资源库和文件资源库)