• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

风子sama

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

排序算法之插入排序

插入排序

插入排序即把数组元素取出来,然后与现有的已经排好序数组进行遍历比较,然后将元素插入进去,时间复杂度为O(N2),最好的情况O(N)

上代码:

public class InsertSort {
	private static void insertSort(int[]arr) {
		//比较arr[i]和arr[i-1],
		//如果arr[i]<arr[i-1],i之前的大于arr[i]的数向后移动一位,插入arr[i]
		int j=0;
		for(int i =1;i<arr.length;i++) {
			if(arr[i]<arr[i-1]) {
				int t = arr[i];
				for(j = i;j>0&&arr[j-1]>t;j--) {
					arr[j] = arr[j-1];
				}
				arr[j]=t;
				
			}
		}
	}
	public static void main(String[] args) {
        int[] ints = {5, 3, 4, 1, 2};
        insertSort(ints);
        System.out.println(Arrays.toString(ints));
    }
    

posted on 2021-09-29 10:37  风子sama  阅读(25)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3