当前位置:网站首页>插入排序 优化插入排序
插入排序 优化插入排序
2022-08-01 16:54:00 【Elvin域文】
package Code01;
import java.util.Scanner;
public class factorial {
// 求1~N的阶乘之和 1!+2!+3+ ... + N!
public static void fac_one(int m){
int rec = 1;
int sum = 0;
for(int j=1;j<=m;j++){
rec = rec*j;
sum += rec;
}
System.out.print(sum);
}
// 交换函数
public static void swap(int[] arr, int a, int b){
int tmp = arr[b];
arr[b] = arr[a];
arr[a] = tmp;
}
// 插入排序
public static void insertSort(int[] arr){
if(arr==null || arr.length<2){
return;
}
//0~0 完成
//0~1
//0~2
//0~3
//0~n-1
int N = arr.length;
for(int end=1;end < N;end++){
int newNumIndex = end;
while(newNumIndex-1 >=0 && arr[newNumIndex-1] > arr[newNumIndex]){
swap(arr, newNumIndex-1, newNumIndex);
newNumIndex--;
}
}
}
// 优化插入排序
public static void optinsertSort(int[] arr){
if(arr==null || arr.length<2){
return;
}
int N = arr.length;
for(int end=0; end<N; end++){
for(int pre = end-1; pre>=0 && arr[pre]>arr[pre+1]; pre-- ){
swap(arr, pre, pre+1);
}
}
}
public static void printArray(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
}
public static void main(String[] args){
int[] arr = {7,1,3,5,1,6,8,1,3,5,7,5,6};
printArray(arr);
insertSort(arr);
printArray(arr);
optinsertSort(arr);
printArray(arr);
}
}边栏推荐
猜你喜欢

LeetCode Week 303

02 es cluster construction

【Unity,C#】哨兵点位循迹模板代码

京东软件测试面试题,仅30题就已经拯救了50%的人

Use Canvas to implement mobile phone signature

90后的焦虑,被菜市场治好了

Vulnhub target drone: HARRYPOTTER_ NAGINI

助推科技强国高质量发展《科创超级训练营》系列活动正式拉开帷幕

金仓数据库 KingbaseES V8.3 至 V8.6 迁移最佳实践(4. V8.3 到 V8.6 数据库移植实战)

ESP8266-Arduino programming example-GA1A12S202 logarithmic scale analog light sensor
随机推荐
金仓数据库 KingbaseES V8.3 至 V8.6 迁移最佳实践(4. V8.3 到 V8.6 数据库移植实战)
MySQL INTERVAL Keyword Guidelines
【二叉树】奇偶树
下载 | 谷歌科学家Kevin P. Murphy发布新书《概率机器学习:高级主题》
TiFlash 存储层概览
70后夫妻给苹果华为做“雨衣”,三年进账7.91亿
金仓数据库 KDTS 迁移工具使用指南(3. 系统部署)
【TDP加码福利】COS用户实践征文月,等你来投稿!!!
【硬核拆解】50块2个的2022年夏季款智能节电器到底能不能省电?
AntDB数据库亮相24届高速展,助力智慧高速创新应用
素域和扩域
请问数据库中报错信息如下,mongoshake 有什么配置的方式解决这种大消息问题吗?
PHP security flaws: session hijacking, cross-site scripting, SQL injection and how to fix them
Sftp中文件名乱码
变量交换;复合赋值;增递减运算符
DateTime Helper Class for C#
我的新书销量1万册了!
MLX90640 红外热成像仪测温模块开发笔记(完整版)
C # Excel helper classes
C#的DataTable帮助类