加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

算法入门-插入排序算法

发布时间:2020-12-14 06:30:10 所属栏目:Java 来源:网络整理
导读:插入排序算法 span style="color: #008000;"输出:输入序列的一个排序(即重新排序)a1',a2',a3',.......,an',使得a1'≤a2'≤a3'≤.......≤an'。 下面给出我自己的代码实现: 代码中要排序的数组是通过方法createRandomArray()生成的。 SORT_DESC = 1 SORT_D

插入排序算法

<span style="color: #008000;">输出:输入序列的一个排序(即重新排序)<a1',a2',a3',.......,an'>,使得a1'≤a2'≤a3'≤.......≤an'。

下面给出我自己的代码实现:

代码中要排序的数组是通过方法createRandomArray()生成的。

SORT_DESC = 1 SORT_DES = 0 [] a = createRandomArray(6 System.out.println("要进行插入排序的数组为:" + System.out.println("==========================" [] b = System.out.println("==========================" System.out.println("排序结果:" + [] createRandomArray( (length > 0 [] a = ( i = 0; i < length; i++ Random random = a[i] = random.nextInt(length * 50 } NullPointerException("要创建的数组长度应该大于0" SORT_DES = 0表示升序排列, SORT_DESC = 1表示降序排列 [] insertionSort([] a, (a == (desc == ( j = 1; j < a.length; j++ temp = i = n = 1 ((i > 0) && (a[i - 1] > a[i] = a[i - 1 i = i - 1 System.out.println(" [" + j+"-"+n + "]次排序后结果为:" + n = n + 1 a[i] = n = 1 System.out.println("第[" + j + "]次排序后结果为:" + } ( j = 1; j < a.length; j++ temp = i = n = 1 ((i > 0) && (a[i - 1] < a[i] = a[i - 1 i = i - 1 System.out.println(" [" + j+"-"+n + "]次排序后结果为:" + n = n + 1 a[i] = n = 1 System.out.println("第[" + j + "]次排序后结果为:" + StringBuffer printAnArray( (a == StringBuffer buffer = ( j = 0; j < a.length; j++ buffer.append(" " + a[j] + " " }

运行效果:

要进行插入排序的数组为: 184 177 95 28 13 14 ==========================1-1]次排序后结果为: 184 184 95 28 13 141]次排序后结果为: 177 184 95 28 13 142-1]次排序后结果为: 177 184 184 28 13 142-2]次排序后结果为: 177 177 184 28 13 142]次排序后结果为: 95 177 184 28 13 143-1]次排序后结果为: 95 177 184 184 13 143-2]次排序后结果为: 95 177 177 184 13 143-3]次排序后结果为: 95 95 177 184 13 143]次排序后结果为: 28 95 177 184 13 144-1]次排序后结果为: 28 95 177 184 184 144-2]次排序后结果为: 28 95 177 177 184 144-3]次排序后结果为: 28 95 95 177 184 144-4]次排序后结果为: 28 28 95 177 184 144]次排序后结果为: 13 28 95 177 184 145-1]次排序后结果为: 13 28 95 177 184 1845-2]次排序后结果为: 13 28 95 177 177 1845-3]次排序后结果为: 13 28 95 95 177 1845-4]次排序后结果为: 13 28 28 95 177 1845]次排序后结果为: 13 14 28 95 177 184 ==========================13 14 28 95 177 184
要进行插入排序的数组为: 43 133 132 27 280 46 ==========================1-1]次排序后结果为: 43 43 132 27 280 461]次排序后结果为: 133 43 132 27 280 462-1]次排序后结果为: 133 43 43 27 280 462]次排序后结果为: 133 132 43 27 280 463]次排序后结果为: 133 132 43 27 280 464-1]次排序后结果为: 133 132 43 27 27 464-2]次排序后结果为: 133 132 43 43 27 464-3]次排序后结果为: 133 132 132 43 27 464-4]次排序后结果为: 133 133 132 43 27 464]次排序后结果为: 280 133 132 43 27 465-1]次排序后结果为: 280 133 132 43 27 275-2]次排序后结果为: 280 133 132 43 43 275]次排序后结果为: 280 133 132 46 43 27 ==========================280 133 132 46 43 27

?下面代码增加了日志功能:

SORT_DESC = 1 SORT_DES = 0 String LOG_FILE_NAME = "hongtenLog.txt" StringBuffer buffer = [] a = createRandomArray(15 System.out.println("要进行插入排序的数组为:" + setContent("要进行插入排序的数组为:" + System.out.println("==========================" setContent("==========================" [] b = System.out.println("==========================" setContent("==========================" System.out.println("排序结果:" + setContent("排序结果:" + buffer.append(str + "n" File file = FileWriter fw = fw.write(str + "n" } [] createRandomArray( (length > 0 [] a = ( i = 0; i < length; i++ Random random = a[i] = random.nextInt(length * 50 } NullPointerException("要创建的数组长度应该大于0" SORT_DES = 0表示升序排列, SORT_DESC = 1表示降序排列 [] insertionSort([] a, (a == (desc == ( j = 1; j < a.length; j++ temp = i = n = 1 ((i > 0) && (a[i - 1] > a[i] = a[i - 1 i = i - 1 System.out.println(" [" + j+"-"+n + "]次排序后结果为:" + setContent(" [" + j+"-"+n + "]次排序后结果为:" + n = n + 1 a[i] = n = 1 System.out.println("第[" + j + "]次排序后结果为:" + setContent("第[" + j + "]次排序后结果为:" + } ( j = 1; j < a.length; j++ temp = i = n = 1 ((i > 0) && (a[i - 1] < a[i] = a[i - 1 i = i - 1 System.out.println(" [" + j+"-"+n + "]次排序后结果为:" + setContent(" [" + j+"-"+n + "]次排序后结果为:" + n = n + 1 a[i] = n = 1 System.out.println("第[" + j + "]次排序后结果为:" + setContent("第[" + j + "]次排序后结果为:" + StringBuffer printAnArray( (a == StringBuffer buffer = ( j = 0; j < a.length; j++ buffer.append(" " + a[j] + " " }

运行效果:

要进行插入排序的数组为: 537 424 33 491 507 481 355 208 565 404 530 463 234 335 354 ==========================1]次排序后结果为: 537 424 33 491 507 481 355 208 565 404 530 463 234 335 3542]次排序后结果为: 537 424 33 491 507 481 355 208 565 404 530 463 234 335 3543-1]次排序后结果为: 537 424 33 33 507 481 355 208 565 404 530 463 234 335 3543-2]次排序后结果为: 537 424 424 33 507 481 355 208 565 404 530 463 234 335 3543]次排序后结果为: 537 491 424 33 507 481 355 208 565 404 530 463 234 335 3544-1]次排序后结果为: 537 491 424 33 33 481 355 208 565 404 530 463 234 335 3544-2]次排序后结果为: 537 491 424 424 33 481 355 208 565 404 530 463 234 335 3544-3]次排序后结果为: 537 491 491 424 33 481 355 208 565 404 530 463 234 335 3544]次排序后结果为: 537 507 491 424 33 481 355 208 565 404 530 463 234 335 3545-1]次排序后结果为: 537 507 491 424 33 33 355 208 565 404 530 463 234 335 3545-2]次排序后结果为: 537 507 491 424 424 33 355 208 565 404 530 463 234 335 3545]次排序后结果为: 537 507 491 481 424 33 355 208 565 404 530 463 234 335 3546-1]次排序后结果为: 537 507 491 481 424 33 33 208 565 404 530 463 234 335 3546]次排序后结果为: 537 507 491 481 424 355 33 208 565 404 530 463 234 335 3547-1]次排序后结果为: 537 507 491 481 424 355 33 33 565 404 530 463 234 335 3547]次排序后结果为: 537 507 491 481 424 355 208 33 565 404 530 463 234 335 3548-1]次排序后结果为: 537 507 491 481 424 355 208 33 33 404 530 463 234 335 3548-2]次排序后结果为: 537 507 491 481 424 355 208 208 33 404 530 463 234 335 3548-3]次排序后结果为: 537 507 491 481 424 355 355 208 33 404 530 463 234 335 3548-4]次排序后结果为: 537 507 491 481 424 424 355 208 33 404 530 463 234 335 3548-5]次排序后结果为: 537 507 491 481 481 424 355 208 33 404 530 463 234 335 3548-6]次排序后结果为: 537 507 491 491 481 424 355 208 33 404 530 463 234 335 3548-7]次排序后结果为: 537 507 507 491 481 424 355 208 33 404 530 463 234 335 3548-8]次排序后结果为: 537 537 507 491 481 424 355 208 33 404 530 463 234 335 3548]次排序后结果为: 565 537 507 491 481 424 355 208 33 404 530 463 234 335 3549-1]次排序后结果为: 565 537 507 491 481 424 355 208 33 33 530 463 234 335 3549-2]次排序后结果为: 565 537 507 491 481 424 355 208 208 33 530 463 234 335 3549-3]次排序后结果为: 565 537 507 491 481 424 355 355 208 33 530 463 234 335 3549]次排序后结果为: 565 537 507 491 481 424 404 355 208 33 530 463 234 335 35410-1]次排序后结果为: 565 537 507 491 481 424 404 355 208 33 33 463 234 335 35410-2]次排序后结果为: 565 537 507 491 481 424 404 355 208 208 33 463 234 335 35410-3]次排序后结果为: 565 537 507 491 481 424 404 355 355 208 33 463 234 335 35410-4]次排序后结果为: 565 537 507 491 481 424 404 404 355 208 33 463 234 335 35410-5]次排序后结果为: 565 537 507 491 481 424 424 404 355 208 33 463 234 335 35410-6]次排序后结果为: 565 537 507 491 481 481 424 404 355 208 33 463 234 335 35410-7]次排序后结果为: 565 537 507 491 491 481 424 404 355 208 33 463 234 335 35410-8]次排序后结果为: 565 537 507 507 491 481 424 404 355 208 33 463 234 335 35410]次排序后结果为: 565 537 530 507 491 481 424 404 355 208 33 463 234 335 35411-1]次排序后结果为: 565 537 530 507 491 481 424 404 355 208 33 33 234 335 35411-2]次排序后结果为: 565 537 530 507 491 481 424 404 355 208 208 33 234 335 35411-3]次排序后结果为: 565 537 530 507 491 481 424 404 355 355 208 33 234 335 35411-4]次排序后结果为: 565 537 530 507 491 481 424 404 404 355 208 33 234 335 35411-5]次排序后结果为: 565 537 530 507 491 481 424 424 404 355 208 33 234 335 35411]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 208 33 234 335 35412-1]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 208 33 33 335 35412-2]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 208 208 33 335 35412]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 234 208 33 335 35413-1]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 234 208 33 33 35413-2]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 234 208 208 33 35413-3]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 234 234 208 33 35413]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 335 234 208 33 35414-1]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 335 234 208 33 3314-2]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 335 234 208 208 3314-3]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 335 234 234 208 3314-4]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 335 335 234 208 3314]次排序后结果为: 565 537 530 507 491 481 463 424 404 355 354 335 234 208 33 ==========================565 537 530 507 491 481 463 424 404 355 354 335 234 208 33

这样我们也可以在日志文件中查看。这种是针对控制台显示不完的情况下的一种解决方案。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读