• 快速排序


    *)冒泡排序

    一共N个数

    第一轮:第一个数和第二个对比,大的放到下面;然后,第二个数和第三个数对比,大的放到下面;……对比N个数。此时,第N个数是这组中最大的一个。

    第二轮:第一个数和第二个对比,大的放到下面;然后,第二个数和第三个数对比,大的放到下面;……对比前N-1个数。此时,第N-1个数是这组中最大的一个。

    ……

    第K轮:第一个数和第二个对比,大的放到下面;然后,第二个数和第三个数对比,大的放到下面;……对比前N-K+1个数。此时,第N-K+1个数是这组中最大的一个。

    一直到最后一轮只有一个数为止。

    这个过程,大的数一直在往下沉,小的数一直在网上漂。像冒泡一样。

    java程序:

     1 /定义临时变量 int temp ; 
     2  
     3 //迚行冒泡排序 
     4 for (int i = 0; i < height.length - 1; i++) {//控制比较多少轮   
     5     for (int j = 0; j < height.length-1-i; j++) {//控制每轮比较次数   
     6         if(height[j] > height[j+1]){ //进行两数交换 
     7             temp = height[j]; 
     8             height[j] = height[j+1]; 
     9             height[j+1] = temp; 
    10         } 
    11     } 
    12 }        

    *)快速排序

    快速排序是冒泡排序的改良。

    一个头指针low,一个尾指针high,一个枢纽pivot

    头指针指向第一个元素,尾指针指向第N个元素,选择一个枢纽(比如第一个元素做枢纽)。头指针向后移动,尾指针向前移动。

    步骤:1尾指针的元素和枢纽对比,如果比枢纽小,和枢纽交换位置。2头指针的元素和枢纽对比,如果比枢纽大,和枢纽交换位置。一次交换结束。3.第二次交换,头指针像后移一个,尾指针向前移动一个。然后继续步骤1,2。4.一直到头指针和尾指针指向同一个元素。此时,枢纽前的元素都比它小,枢纽后的元素都比它大。一趟排序结束。

    5.第二趟:枢纽前后分成2部分,分别重复1到4的步骤,一直到不能分组为止,整个快速排序结束。

  • 相关阅读:
    记录下首次开通流量主,开心开心
    微信小程序之本地缓存
    在使用ef的情况下,有Migrations文件,想要直接生成数据库
    CSS 设置圆角div和阴影效果
    小程序UI库(UI组件)
    没有找到可以构建的 NPM 包---小程序开发
    php 接口参数对象转数组方法
    tp5框架获取随机n条
    php图片上传base64接口上传
    php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理
  • 原文地址:https://www.cnblogs.com/mySummer/p/10631143.html
Copyright © 2020-2023  润新知