`

排序的几种写法

    博客分类:
  • 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);    
 
        }    
 
       }  
 

分享到:
评论

相关推荐

    所有排序的写法(Java).zip

    这里我们主要探讨的是使用Java实现的几种经典排序算法,包括直接选择排序、堆排序、冒泡排序、快速排序、直接插入排序、折半插入排序、Shell排序、归并排序、桶式排序和基数排序。这些算法各有特点,适用于不同的...

    js冒泡排序

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

    sort排序 结构体题解

    结构体排序是 sort 排序的一种重要应用,结构体可以包含多种类型的数据,如字符串、整数、浮点数等。结构体排序可以按照不同的规则进行排序,如按照成绩从高到低排序、按照年龄从大到小排序等。 五、实践应用 sort...

    算法领域,快速排序(Quicksort),用于排列数据

    以下是几种常用编程语言的快速排序实现示例。 ##### 1. GO 语言实现 GO 语言提供了多种实现快速排序的方式,包括直接递归实现、尾递归优化等。这里给出两种常见的实现方式: - **第一种写法**:使用双指针技术,...

    NSArray排序demo

    总之,`NSArray`的排序可以通过多种方式实现,包括`sortedArrayUsingComparator:`、`NSMutableArray`的`sortUsingComparator:`以及`NSSortDescriptor`。选择哪种方法取决于你的具体需求,如是否需要保持原数组不变,...

    最新冒泡排序c++的写的

    在"最新冒泡排序c++的写法"中,我们可以探讨以下几个重要的知识点: 1. **冒泡排序的基本原理**:冒泡排序的核心思想是重复遍历待排序的序列,每次遍历时将最大的(或最小的)元素逐渐“冒”到序列的末尾。这个过程...

    c语言实现的直接插入排序

    - 直接插入排序的空间复杂度为O(1),因为它只使用了固定的几个辅助变量,并没有额外的存储空间需求。 ### 五、适用场景及优缺点 - **优点**: - 实现简单,代码量少。 - 空间复杂度低。 - 对于小规模数据排序...

    内部 排序

    内部排序是计算机科学中一种...总结起来,内部排序是编程和数据结构领域的一个基础主题,涉及多种算法,每种都有其特定的应用场景和优缺点。对于初学者来说,理解和实践这些排序算法有助于提升编程能力和问题解决能力。

    sql分页查询几种写法

    以下将详细介绍几种常见的SQL分页查询方法。 1. **Not In / Top 方法** 这种方法通过`NOT IN`子查询配合`TOP`来实现分页。首先,获取需要排除的前n条记录,然后在主查询中排除这些记录,从而得到分页后的结果。...

    C#后台分页及数据库脚本常用的几种分页写法

    ### C#后台分页及数据库脚本常用的几种分页写法 #### 分页技术概述 在Web开发中,为了提高用户体验以及服务器性能,通常会采用分页技术来展示大量数据。分页技术不仅可以减少单次请求的数据量,降低服务器压力,还...

    MySQL排序中使用CASE WHEN的方法示例

    这两种方法都不会改变查询结果的行,只是改变了排序的依据。这样,无论`status`的值是多少,只要它不等于0,就会按照升序排列,而值为0的记录则被推至末尾。 总结来说,`CASE WHEN`在MySQL排序中的应用能帮助我们...

    Js sort排序使用方法

    这个函数需要能够定义排序的规则,它接受两个参数(通常是变量x和y),这两个参数代表数组中的元素,函数需要根据这两个元素返回以下三种值之一: 1. **负整数**:当x小于y时返回; 2. **零**:当x和y相等时返回; ...

    复杂联系人界面写法

    这类界面通常包含多个视图、搜索过滤、分组、排序以及多种操作选项,如添加、编辑、删除联系人。在这个场景中,开发者可能面临如何有效地展示大量数据、处理用户输入和响应、优化性能等挑战。 描述中提到的博客链接...

    浅析python中SQLAlchemy排序的一个坑

    然而,这种写法可能会导致SQLAlchemy生成效率较低的SQL语句,尤其是在处理大量数据时,性能问题尤为明显。这是因为负号实际上是创建了一个隐式的`desc()`函数,但直接使用`desc()`会更清晰且高效。 下面是优化后的...

    2022整理python常用算法大全(各种算法说明写法)

    Python是一种广泛应用于数据分析、机器学习、人工智能等领域的高级编程语言,其简洁的语法使得实现算法变得更为直观。本文将深入探讨2022年整理的Python常用算法大全,包括各种算法的说明和实现方法。 一、排序算法...

    sql写法_CTE

    CTE广泛应用于各种复杂的查询操作中,包括但不限于以下几种情况: 1. **简化多层嵌套查询**:使用CTE可以将复杂的嵌套查询拆分为多个步骤,每一步作为一个单独的CTE,这样不仅提高了查询的可读性,还便于调试和维护...

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

    这三种方法都可以有效地统计字符串中每种字符的个数并进行排序,但效率上可能会有所差异。第一种方法使用了内置的`array_count_values()`函数,因此可能在处理大量数据时速度较快。而第二、三种方法虽然需要额外的...

    常用文体写作答案[字母排序].doc

    文档“常用文体写作答案[字母排序].doc”涵盖了多种文体写作的知识点,涉及科技论文、调查报告、计划、总结、合同、简报等多种常见文体。以下是这些知识点的详细解析: 1. **检索途径**:按学科分类与体系排列是...

Global site tag (gtag.js) - Google Analytics