java算法-插入排序
扑克牌,相信很多人都玩过,我们抓牌的时候,一般都是把抓上来的牌跟手上的牌比较,然后插到左边或者右边( 看你是从大到小,还是从小到大 )。
这就是插入排序。
package com.ghostwu; import java.util.Random; class MyInsertSort{ int maxSize; int[] arr; public MyInsertSort( int s ){ arr = new int[s]; Random rand = new Random(); for( int i = 0; i < arr.length; i++ ){ arr[i] = rand.nextInt( 101 ); } } public void sort(){ //从下标1开始,下标为0就一个数,他就是有序的 for( int i = 1; i < arr.length; i++ ){ int tmp = arr[i]; int j = i; //从已经排好序的数 最右边的开始比较,如果小,就把当前的值,继续和他前面的比较 while( j > 0 && tmp < arr[j-1] ) { arr[j] = arr[j-1]; //往后移动 j--; } //开始插入 arr[j] = tmp; System.out.println( "第" + i + "轮,排序结果" ); printArray(); } } public void printArray(){ for( int i = 0; i < arr.length; i++ ){ System.out.print( arr[i] + "\t" ); } System.out.println(); } } public class InsertSort2 { public static void main(String[] args) { MyInsertSort s = new MyInsertSort( 10 ); System.out.println( "--------------排序前--------------" ); s.printArray(); s.sort(); System.out.println( "--------------排序后--------------" ); s.printArray(); } }
排序细节与结果:
--------------排序前-------------- 37 87 4 32 9 62 81 41 84 41 第1轮,排序结果 37 87 4 32 9 62 81 41 84 41 第2轮,排序结果 4 37 87 32 9 62 81 41 84 41 第3轮,排序结果 4 32 37 87 9 62 81 41 84 41 第4轮,排序结果 4 9 32 37 87 62 81 41 84 41 第5轮,排序结果 4 9 32 37 62 87 81 41 84 41 第6轮,排序结果 4 9 32 37 62 81 87 41 84 41 第7轮,排序结果 4 9 32 37 41 62 81 87 84 41 第8轮,排序结果 4 9 32 37 41 62 81 84 87 41 第9轮,排序结果 4 9 32 37 41 41 62 81 84 87 --------------排序后-------------- 4 9 32 37 41 41 62 81 84 87
作者:ghostwu, 出处:http://www.cnblogs.com/ghostwu
博客大多数文章均属原创,欢迎转载,且在文章页面明显位置给出原文连接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架