`

Sort Alghough

 
阅读更多
BubbleSort: each iteration exchange next two numbers to make the bigger one

SelectionSort: each iteration find out the min/max number

InsertSort:

ShellSort: by increment

MergeSort: recur sort & merge

QuickSort: from left to right find out the first bigger number while from right to left fund out the first smaller number until index i=j. compare the two found out numbers, exchange if left > right.

class QuickSort {
    public static void doQuickSort(int[] array, int left, int right) {
        if (left > right) {
            return;
        }
        int i = left;
        int j = right;
        int checkPoint = array[left];
        int temp;
        while(i < j) {
            // find out the first smaller number from right to left
            while (i < j && array[j] > checkPoint ) {
                j--;
            }
            System.out.println(" find out the first smaller number from right to left, array[" + j + "] is " + array[j]);

            // find out the first bigger number from left to right
            while(i < j && array[i] <= checkPoint) {
                i ++;
            }
            System.out.println(" find out the first bigger number from left to right, array[" + i + "] is " + array[i]);

            // exchange
            if (array[i] > array[j]) {
                temp = array[i];
                array[i] = array[j];
                array[j] =temp;
            }
        }

        System.out.print("This time array is: ");
        System.out.println(Arrays.toString(array));

        // exchange the first left number with the checkpoint number
        temp = array[left];
        array[left] = array[i];
        array[i] = temp;

        // sort the array from left to the partition index
        doQuickSort(array, left, i-1);

        // sort the array from partition index to the right
        doQuickSort(array, j+1, right);
    }
}

public class Test {

    public static void main(String[] args) {
        int[] array = {3, 2, 4, 1, 7, 7, 5 ,6 ,9 ,0};
        System.out.print("init array is: ");
        System.out.println(Arrays.toString(array));

        QuickSort.doQuickSort(array, 0, array.length-1);
    }
}

https://mp.weixin.qq.com/s?__biz=MzU5OTMyODAyNg==&mid=2247485420&idx=1&sn=44687956151830de6c72d20d942728a0&scene=21#wechat_redirect
分享到:
评论

相关推荐

    sort_nat.zip_sort nat_sort_nat

    标题中的"sort_nat.zip_sort nat_sort_nat"可能是指一个用于整理文件名的程序或脚本,它采用了自然排序(Natural Sort)的方式,使得文件名按照人类阅读习惯进行排序。自然排序不仅考虑字符的顺序,还能理解数字序列...

    多目标跟踪(SORT,Deep_SORT,IOU17,SST)代码

    本资源包含了四种常见的多目标跟踪算法的实现:SORT (Simple Online and Realtime Tracking),Deep SORT,IOU Tracker以及SST (Spatio-temporal Salient Target Detection and Tracking)。 1. **SORT (Simple On...

    SORT目标跟踪算法论文

    SORT(Simple Online and Realtime Tracking)算法是一种针对多目标跟踪(Multiple Object Tracking,MOT)问题的高效实时方法。该算法由Alex Bewley等人在2017年发表的论文中提出,其主要关注在线实时应用中的目标...

    基于YOLOV5-7.0+DeepSort的目标追踪算法

    基于DeepSORT算法和YOLOv5 7.0版本的目标跟踪实现。DeepSORT是一种强大的多目标跟踪算法,结合YOLOv5 7.0版本的目标检测能力,可以实现高效准确的实时目标跟踪。 基于 YOLOV5 和 DeepSort 的目标追踪算法是一种结合...

    YOLOv10-DeepSORT-main

    # YOLOv10_DeepSORT This repository contains code for object detection and tracking in videos using the YOLOv10 object detection model and the DeepSORT algorithm. ## Installation 1. Clone this ...

    arm_max和arm_sort两个函数的使用.docx

    本文将详细介绍`arm_max_f32`和`arm_sort_f32`两个函数的使用,这两个函数是针对MSP432平台的程序设计,主要用于处理32位浮点数数组。我们将深入探讨它们的功能、参数以及如何在实际代码中应用。 **arm_max_f32 ...

    cobol对file文件操作SORT

    "SORT"是COBOL中一个强大的工具,用于对文件进行排序。本文将深入探讨COBOL中的FILE操作,以及如何利用USING,GIVING,INPUT PROCEDURE和OUTPUT PROCEDURE指令进行文件操作,特别是与SORT相关的知识点。 首先,让...

    sort_deepsort_yolox汇报PPT.pptx

    sort_deepsort_yolox汇报PPT.pptx 本文档主要介绍了sort和deepsort目标追踪算法的原理和实现,特别是deepsort算法的改进和YOLOX目标检测算法的应用。 卡尔曼滤波(Kalman Filter) 卡尔曼滤波是一种常用的运动...

    deep_sort_yolov3利用深度学习的多目标跟踪

    《深度学习驱动的多目标跟踪:深入理解deep_sort_yolov3》 多目标跟踪(Multiple Object Tracking, MOT)是计算机视觉领域中的一个重要任务,它旨在识别和追踪视频或图像序列中的多个动态对象。在现代智能监控、...

    C语言中的sort

    在C语言中,`sort`通常指的是排序算法的实现,特别是在C++标准库中,`std::sort`是一个常用的排序函数。然而,在纯C环境中,没有内置的`sort`函数,程序员需要自己实现排序算法。这里我们将探讨C语言中实现排序的...

    sort函数应用

    sort 函数应用详解 sort 函数是 C++ 标准模板库 (STL) 中的一个重要函数,用于对数组或容器中的元素进行排序。排序是计算机科学中的一种基本操作,在实际应用中有着广泛的应用。 sort 函数的用法简介 -----------...

    java List 排序 Collections.sort

    当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...

    基于YOLOV5-7.0+DeepSort的目标追踪算法测

    基于DeepSORT算法和YOLOv5 7.0版本的目标跟踪实现。DeepSORT是一种强大的多目标跟踪算法,结合YOLOv5 7.0版本的目标检测能力,可以实现高效准确的实时目标跟踪。 基于 YOLOV5 和 DeepSort 的目标追踪算法是一种结合...

    c++版本的基于Yolov5的deepsort的实现

    "c++版本的基于Yolov5的deepsort的实现"是一个专为此目的设计的系统,它将深度学习模型与先进的跟踪算法相结合,以高效、准确地进行目标检测和跟踪。 Yolov5是一种流行的实时目标检测模型,全称为You Only Look ...

    deepsort重识别权重文件ckpt.t7

    深度学习在目标追踪领域有着广泛的应用,而DeepSORT是一种高效且准确的目标追踪算法。这个算法结合了Deep Neural Network(DNN)的强大学习能力与SORT(Simple Online and Realtime Tracking)的实时性能,尤其在...

    YOLOv8-DeepSORT-code.zip

    YOLOv8-DeepSORT_code.zipYOLOv8-DeepSORT_code.zipYOLOv8-DeepSORT_code.zipYOLOv8-DeepSORT_code.zip YOLOv8-DeepSORT_code.zip

    yolov5+Deepsort部署于rk3588和rk3399pro开发板C++完整源码(车辆行人跟踪)+模型+部署文档.zip

    yolov5+Deepsort算法部署于rk3588和rk3399pro开发板C++完整源码(车辆行人检测跟踪)+rknn模型+操作说明文档.zip 【资源介绍】 改善了边界框漂移, 完善了当图中没有目标等其他情形出现的bug, 增加了对cost matrix出现...

    C#使用sort方法对数组进行快速排序

    在C#编程语言中,`Sort`方法是一个非常重要的功能,它被广泛应用于对各种数据结构,如数组、列表等进行排序。这个方法是通过.NET框架中的`System.Collections.Generic`命名空间下的`List&lt;T&gt;`类提供的,同时也存在于`...

Global site tag (gtag.js) - Google Analytics