`

排序的几种写法

    博客分类:
  • java
 
阅读更多
冒泡 一
public class bubbleSort { 
 
public bubbleSort(){ 
 
    int a[]={1,54,6,3,78,34,12,45}; 
 
    int temp=0; 
 
    for(int i=0;i<a.length;i++){ 
 
       for(int j=i+1;j<a.length;j++){ 
 
       if(a[i]>a[j]){ 
 
           temp=a[i]; 
 
           a[i]=a[j]; 
 
           a[j]=temp; 
 
       } 
 
       } 
 
    } 
 
    for(int i=0;i<a.length;i++) 
 
       System.out.println(a[i]);    
 

 


冒泡 二
public class bubbleSort { 
public  bubbleSort(){ 
     int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; 
    int temp=0; 
    for(int i=0;i<a.length-1;i++){ 
        for(int j=0;j<a.length-1-i;j++){ 
        if(a[j]>a[j+1]){ 
            temp=a[j]; 
            a[j]=a[j+1]; 
            a[j+1]=temp; 
        } 
        } 
    } 
    for(int i=0;i<a.length;i++) 
        System.out.println(a[i]);    



快速  取中间值  一分二 两边递归
public class quickSort { 
 
  inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; 
 
public quickSort(){ 
 
    quick(a); 
 
    for(int i=0;i<a.length;i++) 
 
       System.out.println(a[i]); 
 

 
publicint getMiddle(int[] list, int low, int high) {    
 
            int tmp = list[low];    //数组的第一个作为中轴    
 
            while (low < high) {    
 
                while (low < high && list[high] >= tmp) {    
 
                    high--;    
 
                }    
 
                list[low] = list[high];   //比中轴小的记录移到低端    
 
                while (low < high && list[low] <= tmp) {    
 
                    low++;    
 
                }    
 
                list[high] = list[low];   //比中轴大的记录移到高端    
 
            }    
 
           list[low] = tmp;              //中轴记录到尾    
 
            return low;                   //返回中轴的位置    
 
        }   
 
public void _quickSort(int[] list, int low, int high) {    
 
            if (low < high) {    
 
               int middle = getMiddle(list, low, high);  //将list数组进行一分为二    
 
                _quickSort(list, low, middle - 1);        //对低字表进行递归排序    
 
               _quickSort(list, middle + 1, high);       //对高字表进行递归排序    
 
            }    
 
        }  
 
publicvoid quick(int[] a2) {    
 
            if (a2.length > 0) {    //查看数组是否为空    
 
                _quickSort(a2, 0, a2.length - 1);    
 
        }    
 
       }  
 

分享到:
评论

相关推荐

    算法设计与分析-1排序算法性能分析-冒泡/选择/插入/合并/快速排序-pre ppt

    在本次实验中将数据量提到5万的时候,该类算法运行时间仍在几毫秒左右,而上面的3种算法运行时间已经到达十几秒左右,效率相差已经到达万倍。该类算法的运行时间随着数据的增加,运行时间渐近线性的增加。但注意理论...

    js冒泡排序

    js冒泡排序的几种写法,如果要面试,可以借鉴一下

    php中3种方法统计字符串中每种字符的个数并排序

    3种方法,统计字符串中每种字符的个数并排序,多种解法哟~ str_split()函数很重要

    数据结构(严版)讲义

    一、教材内容  使用教材《数据结构》C语言版 严蔚敏,清华大学出版社。  章节 去掉 第5、8、11、12...掌握几种说法 数据元素是…,数据项是… 数据结构中关系的四种基本结构 数据结构的形式定义 算法的五个特征

    数据结构讲义(严蔚敏版)

    一、教材内容  使用教材《数据结构》C语言版 严蔚敏,清华大学出版社。  章节 去掉 第5、8、11、12...掌握几种说法 数据元素是…,数据项是… 数据结构中关系的四种基本结构 数据结构的形式定义 算法的五个特征

    数据结构讲义(严蔚敏版)(含算法源码)

    掌握几种说法 数据元素是…,数据项是… 数据结构中关系的四种基本结构 数据结构的形式定义 算法的五个特征 3. 线性表 线性表的概念和四个特征 顺序表和单链表的类型定义 在顺序表中查找、插入、删除,灵活运用 ...

    《算法》中文版,Robert Sedgewick,塞奇威克

     2、内容全面:全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法  3、全新修订的代码:全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用  4、与...

    算法,4th,塞奇威克 (Robert Sedgewick)韦恩 (Kevin Wayne), 谢路云 译.azw3

    《图灵程序设计丛书:算法(第4版)》编辑推荐:Sedgewick之巨著,与高德纳TAOCP一脉相承,几十年多次修订,经久不衰的畅销书,涵盖所有程序员必须掌握的50种算法。《图灵程序设计丛书:算法(第4版)》全面讲述算法和数据...

    电子学会python二级试卷(含知识点)

    1. 知道如下几种数据类型:列表、元组、字典、字符串、 range、集合六大内置核心数据类型; 2. 理解列表类型的概念,掌握它的基础用法及操作:访问/更 新、获取元素个数、遍历、转换为列表型数据、添加和删 除、连接...

    leetcode题库-leetcodeJava:leetCode的java解法参考

    添加了归并排序,增加了归并排序的自底向上的循环写法,丰富了注释,增加了归并排序的两个优化 2017-09-22 更新快速排序与快速排序的优化 2017-09-25 更新了双路快速排序与三路快速排序 2017-09-26 使用快速排序中思路 ...

    C语言程序设计标准教程

    而不能用一个语句输出整个数组,下面的写法是错误的: printf("%d",a); void main() { int i,a[10]; for(i=0;i;i++) a[i++]=2*i+1; for(i=9;i&gt;=0;i--) printf("%d",a[i]); printf("\n%d %d\n",a[5.2],a[5.8]); }  ...

    2020年9月Python青少年软件编程二级真题

    1. 知道如下几种数据类型:列表、元组、字典、字符串、 range、集合六大内置核心数据类型; 2. 理解列表类型的概念,掌握它的基础用法及操作:访问/更 新、获取元素个数、遍历、转换为列表型数据、添加和删 除、连接...

    少儿编程Python电子学会二级课件

    1.知道如下几种数据类型:列表、元组、字典、字符串、range、集合六大内置核心数据类型; 2.理解列表类型的概念,掌握它的基础用法及操作:访问/更 新、获取元素个数、遍历、转换为列表型数据、添加和删除、连接、...

    leetcode安卓-Data-Structures-and-Algorithms:数据结构和算法

    多种写法 并发安全 双链表实现 双链表实现 双链表实现 树 贪心思想 动态规划 1 1 递归题 各种算法已代码实现 极客时间算法: Common Data Structure Operations 时间复杂度 学习笔记 仅供同学们参考

    leetcode安卓-LeetCode-Study:leetcode学习记录

    多种写法 并发安全 双链表实现 双链表实现 双链表实现 树 贪心思想 动态规划 1 1 递归题 各种算法已代码实现 极客时间算法: Common Data Structure Operations 时间复杂度 学习笔记 仅供同学们参考

    计算机二级C语言考试题预测

    (54) 在下列几种排序方法中,要求内存量最大的是(D) 注:要牢记,书中没有提到。 A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序 (55) 在设计程序时,应采纳的原则之一是(A) 注:和设计风格有关 A. 程序结构应有...

    java服务器 java机器人 unity3D客户端.rar

    输入几个字屏幕就被换行,肯定玩玩。不过如果是画面形式,当然就无所谓了。 修改比较方式。修改数组的初始化的方式(建议改为ArrayList方式作为容器),并调用Lists的排序方法;最后提个建议:注意代码编写规范,...

    二级C语言公共基础知识

    (31) 算法一般都可以用哪几种控制结构组合而成______。(D) A. 循环、分支、递归 B. 顺序、循环、嵌套 C. 循环、递归、选择 D. 顺序、选择、循环 (32) 数据的存储结构是指______。(B) A. 数据所占的存储空间量 B. ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    最近几年,他专注于研究Oracle内部原理以及解决性能问题。他的博客主页是 kerryosborne.oracle-guy.com。  ROBYN SANDS 思科公司的软件工程师,为思科的客户设计开发嵌入式Oracle数据库产品。从1996年开始使用...

Global site tag (gtag.js) - Google Analytics