冒泡排序+选择排序+插入排序+图与代码
时间:2022-07-28
本文章向大家介绍冒泡排序+选择排序+插入排序+图与代码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
排序方法
代码
package com.qf;/*
* zt
* 2020/7/23
* 15:44
*
*/
import sun.plugin2.message.SetAppletSizeMessage;
public class Demo2 {
public static void main(String[] args) {
int[] nums = {50,20,30,51,48};
for (int num : nums) {
System.out.print(num+",");
}
shellSort(nums);
System.out.println();
for (int num : nums) {
System.out.print(num+",");
}
}
//冒泡排序 :n个数字来排列,两两比较,小靠前,外层循环n-1,内层循环n-1-i
public static void bubbleSort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
if(arr[j]>arr[j+1]){
int t = arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
}
//选择
public static void getxuanze(int[] arr){
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if(arr[i] > arr[j]){
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
}
//插入
public static void inserSort(int[] arr){
for (int i = 1; i < arr.length; i++) {
for (int j = i - 1; j >= 0; j--) {
if(arr[j] > arr[j + 1]){
int t = arr[j];
arr[j] = arr[j+1];
arr[j + 1] = t;
}
}
}
}
//优化插入排序
public static void inserSort2(int[] arr){
for (int i = 1; i < arr.length; i++) {
int t = arr[i];
int pos = i-1;
while(pos>=0 && arr[pos] > t){
arr[pos + 1] = arr[pos];
pos--;
}
arr[pos+1]=t;
}
}
//希尔排序
public static void shellSort(int[] arr){
int gap = arr.length;
while (true){
gap /= 2;
for (int i = 0; i < gap; i++) {
for (int j = i + gap; j < arr.length; j+=gap) {
int t = arr[j];
int pos = j-gap;
while(pos >= 0 && arr[pos] > t){
arr[pos + gap] = arr[pos];
pos -= gap;
}
arr[pos + gap] = t;
}
}
if(gap == 1){
break;
}
}
}
}
- 【LeetCode 122】关关刷题日记25-Best Time to Buy and Sell Stock II
- 【干货】python正则表达式应用笔记
- .NET跨平台之旅:将示例站点从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0
- .NET跨平台之旅:在Linux上以本地机器码(native)运行ASP.NET Core站点
- 【干货】基于pytorch的CNN、LSTM神经网络模型调参小结
- jenkins配置.net mvc网站
- 简述【聚类算法】
- word2vec理论与实践
- GMP大法教你重新做人(从入门到实战)
- Highway Networks
- CTF---编程入门第一题 循环
- Z.ExtensionMethods 一个强大的开源扩展库
- 【干货】神经网络SRU
- AutoMapper 使用实践
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法