zoukankan      html  css  js  c++  java
  • Java数据结构学习(一) —— 基本排序算法

    1、冒泡排序

    核心思想:比较两个元素,如果前一个比后一个大则进行交换。经过对每个元素的比较,最后将最大的元素设置成最后一个元素。重复该操作,最后形成从小到大的排序。时间复杂度O(n2)。

     1 //冒泡排序
     2 public void bubblesort() {
     3     long temp = 0L;
     4     for(int i=0;i<elems-1;i++) {
     5         for(int j=0;j<elems-i-1;j++) {
     6             if(arr[j] > arr[j+1]) {
     7                 temp = arr[j];
     8                 arr[j] = arr[j+1];
     9                 arr[j+1] = temp;
    10             }
    11         }
    12     }
    13 }

    2、选择排序

    核心思想:扫描所有的元素,得到最小的元素,并将最小的元素与最左边第一个元素进行交换。再次扫描除第一位置的所有元素,得到最小的元素,与左边第二个元素进行交换。以此类推。时间复杂度O(n2)。

     1 //选择排序
     2 public void selectSort() {
     3     int min=0;
     4     long temp=0L;
     5     for(int i=0;i<elems-1;i++) {
     6         min=i;
     7         for(int j=i+1;j<elems;j++) {
     8             if(arr[min]>arr[j]) {
     9                 min=j;
    10             }
    11         }
    12         temp=arr[i];
    13         arr[i]=arr[min];
    14         arr[min]=temp;
    15     }
    16 }

    3、插入排序

    核心思想:抽出一个元素,在其前面的元素中找到适当的位置进行插入。时间复杂度O(n2)。

     1 //插入排序
     2 public void insertSort() {
     3     for (int i=1;i<elems;i++) {
     4         long select = arr[i];
     5         int j = 0;
     6         for (j = i;j > 0 && arr[j-1] >= select;j--) {
     7             arr[j] = arr[j-1];
     8         }
     9         arr[j] = select;
    10     }
    11 }
  • 相关阅读:
    7、【Linux系统编程】阻塞和非阻塞
    css样式
    如果目录不存在就创建
    api图片传输,转成64位字符串进行传输
    c#获取远程图片的方法
    分页
    使用微信js接口的方法 ,以调用相机为例
    某个文件下下面的文件批量改名
    查找本地文件中的特定字符串并替换代码
    第35月第6天 自定义view初始化
  • 原文地址:https://www.cnblogs.com/Maggie2019/p/10636467.html
Copyright © 2011-2022 走看看