Lei❤ 经典排序

本文深入分析了各种经典的排序算法,包括选择排序、冒泡排序、插入排序、计数排序等,探讨它们的时间复杂度和空间复杂度。通过实例代码展示了排序过程,并特别提及了数组动态扩容在排序中的应用。排序算法对于问题简化有着重要作用,而理解递归也是编程中的关键概念。
摘要由CSDN通过智能技术生成

分析各种排序算法的原理,分析他们的时间复杂度、空间复杂度。

结果我并没有真正的领悟到要这样分析。但是值得肯定的一点就是,利用排序算法可以简化一个问题。但是反过来说就是,这个东西就是靠自己去领悟。哎,但领悟也是需要积累的。另外,不单单是排序的问题,很多书也都提到了递归这个概念,但是这个东西也是没有很深的理解。

在这里把排序分为以下几点:

选择排序      插入排序      冒泡排序       归并排序        堆排序      快速排序        计数排序       基数排序       桶排序

1.选择排序

选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

选择排序的思想是:把当前元素和之后所有元素进行比较,如果前者大于后者则进行交换

如果所示:当角标i指到0时  那么j就从1到8 挨个比较   然后以此类推

用简单代码来实现就是

import java.util.*;
class xuanzepaixu{
    public static void main(String[] args){
    selectSort();
    }
    public static void selectSort(){
        int[] arr={8,5,9,2,7,4,6,1,3};
        for(int i=0;i<arr.length-1;i++){//-1是因为没有必要进行最后一个数字的比较
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                   int temp=arr[i];
                   arr[i]=arr[j];
                   arr[j]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
     }
}

    

2.冒泡排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值