黑马程序员- java中的排序

黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(6)解散部门 指路(1)(2)(3)(4)(5)👇黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(1)准备工作、部门管理_tlias智能学习辅助系统的需求分析-优快云博客黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(2)员工管理|分页查询、分页查询(带条件)-优快云博客黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(3)员工管理|新增员工、文件上传-优快云博客。 阅读详情

android培训、Java培训、期待与您交流! 


1.插入排序

原理:假设前面n-1个元素是已经排序好的(按顺序从小到大)。将第n个元素依次与前面的n-1个元素比较(从最邻近的元素开始做比较),如果比它前一个元素小,则插入到前面元素位置(即交换位置),直到它前一个元素比它小为止

代码:

public void insertSort(int[] arr) {
int temp = 0;// 临时变量用于交换,,写到循环前面不用每次都在内存中创建变量
for (int i = 1; i < arr.length; i++) {// 遍历整个数组元素
for (int j = i; j > 0 && arr[j] < arr[j - 1]; j--) {// 如果该元素比前一个元素小就插入到前面(交换),直到比前一个元素大为止
temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
}

2.选择排序

原理:将每个元素依次与后面其他元素比较,选出最小值(顺序排序)

代码:

public static void selectSort(int[] arr) {
int temp = 0;// 定义临时变量用于交换
for (int i = 0; i < arr.length - 1; i++) {// 遍历整个数组依次选出剩余部分数组中的最小值
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}

3.冒泡排序

原理:依次将相邻元素比较,大(重)的下沉(顺序排序)

代码:

public static void bubbleSort(int[]arr){
int temp = 0;//临时变量
for(int i = 0 ;i<arr.length-1;i++){//控制循环次数
for(int j=0;j<arr.length-1-i;j++){//将每个元素与它右边第一个元素比较,如果比右边元素大则交换(下沉)
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j]= arr[j+1];
arr[j+1]=temp;
}
}
}
}

4 快速排序

class QuickSort{
        int locationOfFirst(int[] arr,int left, int right){
            
            int base = arr[left];
            int temp = 0;        
            while (right > left) {
                if (arr[right] < base) {//从右往左遍历,比基点元素的值小则交换位置
                    swap(arr,right, left, temp);                    
                    left++;
                    while (left < right) {//从左往右遍历,比基点元素大则交换位置
                        if (arr[left] > base) {
                            swap(arr,left, right, temp);
                            break;
                        }
                        left++;
                    }
                }
                right--;
            }
            return left;
        }
        void quickSort(int[]arr,int left,int right ) {//对数组中角标从left到right的元素进行排序left<right
            if(left<right){
                int loca = locationOfFirst(arr, left, right);//求出第一个元素(left到right范围内)的实际位置(按顺序排列后)
                quickSort(arr,left, loca-1);//对左边比基点元素(即第一个元素)小的元素进行排序
                quickSort(arr, loca+1, right);//对右边比基点元素大的元素进行排序
            }
        }
    }

    public void swap(int[] arr, int index1, int index2,int temp) {// 交换数组中对应位置的元素
        temp = arr[index1];
        arr[index1]= arr[index2];
        arr[index2]= temp;
    }


给jetson nano 安装AX200网卡驱动 几经波折,因为在网上看到的基本都是amd版本而非arm版,然后最终选定V5.5是因为更新的几个版本的arm版本是false的(在https://kernel.ubuntu.com/~kernel-ppa/mainline/处选择版本时,得看在arm64上是false还是build succeeded,之前没经验呀刚刚才顿悟的) 1,参考文章https://blog.youkuaiyun.com/MIRANA0/article/details/106696334 学到了得下载如下四个: wget https://k 阅读详情

相关推荐

Circos在Windows下的安装教程

这里写自定义目录标题Circos简介安装Perl 的安装Circos安装安装及解压安装Modules测试用例官方文档 Circos简介 (来源官网:http://circos.ca/software/readme/ O.INTRODUCTION部分) Circos is a program for the generation of publication-quality, circularly composited renditions of genomic data and related annot

qq_42318911的博客 1660

黑马程序员_常见排序算法:冒泡排序、选择排序和插入排序

------- android培训、java培训、期待与您交流! ---------- ------- android培训、java培训、期待与您交流! ----------

f311000的专栏 366

别再只会插卡了!用示波器实测SIM卡上电时序与通信波形(附故障排查)

本文深入解析了SIM卡通信的电气信号与时序规则,通过示波器实测波形揭示SIM卡上电时序与通信协议的关键细节。从VCC、CLK、RST、DATA四路信号的协同工作,到ATR(Answer to Reset)的解析,再到常见故障的波形诊断与排查方法,为硬件工程师提供了实用的调试指南。文章还分享了高级调试技巧与现代化工具链搭建建议,帮助提升物联网设备SIM卡通信的可靠性与效率。

weixin_42567279的博客 325

黑马程序员——Java中的几种排序算法

class ArrTest{ public static void main (String[]args) { int arr []= new int [] {3,4,6,8,9,1}; int max=getMax(arr); //int max=

3Com的专栏 362

NGSIM数据集字段解析:从车辆轨迹到交通行为分析

本文深度解析NGSIM数据集的核心字段及其在交通行为分析中的应用。详细解读了车辆时空定位、状态属性及交互关系等关键字段,并通过高速路“幽灵堵车”和城市路口左转行为两个实战案例,展示了如何利用该数据集进行微观交通行为建模与驾驶特征提取,为交通流研究和自动驾驶算法测试提供数据基础。

weixin_29172963的博客 147

完整复现YOLOv8:包括训练、测试、评估、预测阶段【本文源码已开源,地址在文章末尾】

(这里主要是在colab.research.google.com实现的,本地的配置也是类似的方法)YOLOv8是一种用于目标检测的深度学习算法。主要参考:https://github.com/ultralytics/ultralytics/blob/main/README.zh-CN.md。yolov8的权重:https://github.com/ultralytics/assets/releases。yolov8的文档:https://v8docs.ultralytics.com/

源代码杀手的博客 1万+

黑马程序员-java中的各种简单排序法实例

---------------------- android培训、java培训、期待与您交流! ----------------------演示各种简单排序算法 /**  * 演示各种排序方法  * @author 李见黎  *2012-3-17  */ import java.util.*; public class Sort {  /**   * @param args

Accipiter 642

2021.02.23丨Virsorter2安装使用及答疑

最近项目比较多,又在学英语,写文章的时间少了很多。最近接到一个病毒组装的项目。用之前组装工具(ABYSS、SPAdes)都没有能够组装较为完整的scafford,今天介绍一款专门用于组装病毒的工具——Virsorter。 Virsorter最早版本发布于2015年,目前已经有了第二个版本。主要用于病毒的组装的注释。详细情况可以查看文章:https://peerj.com/articles/985/ 安装流程 安装文档: https://github.com/jiarong/VirSorter2/b

4835

4/10笔记

黑马程序员全套Java教程笔记 p267 Collections的概述和使用: 快捷键: Ctrl + Alt + B :跳转到方法实现处 Ctrl + Q :在editor window中显示java docs这个功能很方便–因为有时仅仅是忘记了自己编写的方法中的某个参数的含义,此时又不想再起一个浏览器来查看java doc,此时这个功能的好处就体现出来了 Ctrl + /:单行注释 Ctrl + Shift + / :多行注释 Shift + F6 :提供对方法、变量的重命名 Ctrl+D :复制当前

Nina19980917的博客 202

【libnice】meson + vs2022,生成win32工程

libnice

突围 947

2023华为od机试C卷【推荐多样性】Java&Go 实现

推荐多样性需要从多个列表中选择元素,一次性要返回N屏数据(窗口数量),每屏展示K个元素(窗口大小),选择策略1.各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一元素,再从第二个列表中为每屏选择一个元素,依次类推2.每个列表的元素尽量均分为N份,如果不够N个,也要全部分配完,

MISAYAONE的博客 2180

黑马程序员_java_基础_数组和排序

一、关于数组的定义和一些列操作   类似 int[] arr = new int[2]; 或者 int arr[] = new int [2]; 或者 int[] arr = new int[]{1,2,3,4}; 或者 int[] arr= {1,2,3,4}; 几种方式都是可以用来定义一个数组,然后数组名前面的修饰符int也可以切换成其它诸如byte这些。   1.数组

wu_zida的博客 411

信息传输仿真:卫星通信系统仿真_(12).卫星通信系统仿真软件介绍

卫星通信系统仿真软件是进行卫星通信系统设计和性能优化的重要工具。通过这些软件,用户可以模拟和分析各种通信场景,验证不同的通信协议和算法,优化系统参数和配置。本节介绍了 MATLAB Simulink、NS-3、OPNET 和 SystemVue 的基本功能、特点和配置方法,希望对读者在选择和使用仿真软件时提供参考。在实际应用中,建议根据项目需求和团队能力,综合考虑选择合适的仿真软件。

2401_87715305的博客 1278

2021黑马程序员Java面试宝典笔记(完整版)

2021黑马程序员Java面试 一、基础篇 1. 二分查找 要求 能够用自己语言描述二分查找算法 能够手写二分查找代码 能够解答一些变化后的考法 算法描述 前提:有已排序数组 A(假设已经做好) 定义左边界 L、右边界 R,确定搜索范围,循环执行二分查找(3、4两步) 获取中间索引 M = Floor((L+R) /2) 中间索引的值 A[M] 与待搜索的值 T 进行比较 ① A[M] == T 表示找到,返回中间索引 ② A[M] > T,中间值右侧的其它元素都大于 T,无需比

qq_461491877的博客 6975

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

“黑马程序员”基础测试

距我报名开始自学黑马,已经有一个月了。 期间还要工作

ZHOU_XIAO_BING的专栏 1005

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java基础黑马程序员经典题目

今天偶然看到几道传智黑马程序员-----java基础的题目,觉得不错,和大家分享一下吧。 1、请列举您了解的一些排序算法,并用Java语言实现一个效率较高的。 2、定义一个二维int数组,编写代码获取最小元素。 3、判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串 求斐波那契数列第n项

郎建伟的博客 1138

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

黑马程序员——java集合元素排序存储操作

------- android培训、java培训、期待与您交流! ---------  黑马程序员-----java集合元素排序存储操作  //集合对象比较存储 /* 有五个学生,每个学生有3门课的成绩, 从键盘输入以上数据(包括姓名,三门课成绩), 输入的格式:如:zhagnsan,30,40,60计算出总成绩, 并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.tx

tongxinglo的专栏 468

2021黑马程序员java面试宝典笔记一(基础篇)

一、基础篇 1. 二分查找 要求 能够用自己语言描述二分查找算法 能够手写二分查找代码 能够解答一些变化后的考法 算法描述 前提:有已排序数组 A(假设已经做好) 定义左边界 L、右边界 R,确定搜索范围,循环执行二分查找(3、4两步) 获取中间索引 M = Floor((L+R) /2) 中间索引的值 A[M] 与待搜索的值 T 进行比较 ① A[M] == T 表示找到,返回中间索引 ② A[M] > T,中间值右侧的其它元素都大于 T,无需比较,中间索引左边去找,M - 1

qq_461491877的博客 781

黑马程序员Java教程学习笔记(二)

黑马程序员Java教程学习笔记(二)

末初 · mochu7 3197

黑马程序员---Java中常见的排序

——- android培训、java培训、期待与您交流! ———-  Java中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 1、冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数

ChaoYangMemory的博客 486

黑马程序员_Java中几种排序算法

------- android培训、java培训、期待与您交流! ---------- 1)  ------- android培训、java培训、期待与您交流! ----------

limumu100的专栏 555

【1024程序员节特辑】:揭秘黑马程序员逆袭的5大核心技术栈

auto-generated

ProceShoal的博客 1167

黑马程序员_Java各种排序汇总

-----------android培训、java培训、java+3G学习型技术博客、期待与您交流!------------   package com.softeem.jbs.lesson4;   import java.util.Random;   /**  * 排序测试类  *  * 排序算法的分类如下:  * 1.插入排序(直接插入排序、折半插入排序、希尔排序);

Delicate 270

黑马程序员——java集合中的TreeSet

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 1.        java集合框架中的Set接口: Java的集合类主要由两个接口派生而出:Collection和Map. Collection接口派生出了两个重要的子接口:List、Set; 在实现Set接口中的子类中有两

xyyancsd的专栏 640

黑马程序员-java之快速排序的实现

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 当然,现在java已经不用自己实现排序了。但是我觉得排序算法还是比较有意思的。在这里实现一下快速排序。 public class Paixu { public static void main(String[] args) { int[] arr=productArray();    

aguang0819的博客 404

黑马程序员:Java基础之选择排序

------- android培训、java培训、期待与您交流! ----------

u011373068的专栏 512
下一篇: 黑马程序员-java中的String
forTomorrow_java
博客等级 码龄11年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值