插入排序算法讲解
2020-12-30 14:31
标签:没有 比较 oid 个数 自己 变量 enum bsp 数据 一,插入排序的思路 插入排序算法讲解 标签:没有 比较 oid 个数 自己 变量 enum bsp 数据 原文地址:https://www.cnblogs.com/zhijm/p/13020535.html 插入排序的思路
①把数据分成两部分,一部分是有序的,一部分是无序的 即[5] [2,3,9,6]
②然后从无序部分依次拿出一个元素,把这个元素存储在一个变量值中,和有序的最后一个元素进行比较,如果比有序部分的数据还大,
那就暂时把这个大的值,赋值给无序部分要插入的那个数
则和有序部分的倒数第二个进行比较(当然如果有序部分只有一个元素,那就值比较一次),直到找到一个比自己小的数然后在其后面进行插入
③如果和有序部分的数据比较完都没有符合的就在有序部分的最后进行插入
④这时有序的元素就多了一个,无序就少了一个
二,示例 示例
5,2,3,9,6
①[5],[2,3,9,6]
②[2,5][3,9,6]
③[2,3,5] [9,6]
④[2,3,5,6][9]-->2,3,5,6,9
通过示例发现n个数 通过n-1次就可以排序完成
三,代码public static void insertSort(int []arr){
/**
* 5,2,3,9,6
* 插入排序的思路
* ①把数据分成两部分,一部分是有序的,一部分是无序的 即[5] [2,3,9,6]
* ②然后从无序部分依次拿出一个元素,把这个元素存储在一个变量值中,和有序的最后一个元素进行比较,如果比有序部分的数据还大,
* 那就暂时把这个大的值,赋值给无序部分要插入的那个数
* 则和有序部分的倒数第二个进行比较(当然如果有序部分只有一个元素,那就值比较一次),直到找到一个比自己小的数然后在其后面进行插入
* ③如果和有序部分的数据比较完都没有符合的就在有序部分的最后进行插入
* ④这时有序的元素就多了一个,无序就少了一个
* 示例
* 5,2,3,9,6
* ①[5],[2,3,9,6]
* ②[2,5][3,9,6]
* ③[2,3,5] [9,6]
* ④[2,3,5,6][9]-->2,3,5,6,9
* 通过示例发现n个数 通过n-1次就可以排序完成
*/
int middleNumber=0;
int middleIndex=0;
for(int i=1;i