插入排序
发布日期:2021-07-01 00:54:55 浏览次数:2 分类:技术文章

本文共 648 字,大约阅读时间需要 2 分钟。

插入算法到底是怎么样的呢?比如有十个人从左往右无序的拍着,现在要你按身高从低到高排序,你会怎么排序呢?

首先第二个人和第一个人比较,如果第二个人比第一个矮,那么他们互换位置,否则原地不动,此时前两个人就排序好了,然后第三个人再与前面两个人比较,第三人站出来,看看前面两人相比,哪个位置中自己比左边的高比右边的矮,然后就插进去,如果不是,就不动。,接下来就是这样排序。

那么怎么找到比左边高比右边矮的那个位置呢?因为左边都是已经排好了的,所以依次与左边的比较,直到运到一个比他矮的,那么这个位置就是比左边高比右边矮的位置。如果没找到,那么他就是最矮的那个,那么他排在最左边,那么怎么插入呢?因为每一个与左边一个一个比较的那个人都是先站出来,所以他的那个位置是空的。这个时候在找到比他矮的那个人之前,每比完一个,与他进行比较的那个人就往右挪一个位置,然后他就可以插进去了,所以在程序中要先用一个变量保存这个“站出来”的数

#include
int main(void){ int i,j; int temp; // 用于存站出来的数 int a[] = {900, 2, 3, -58, 34, 76, 32, 43, 56, -70, 35, -234, 532, 543, 2500}; int n = sizeof(a) / sizeof(a[0]); for(i=1; i
=0 && (a[j]>temp)) // 与左边所有人都比完了或者找到一个比他矮的为

转载地址:https://m528964214.blog.csdn.net/article/details/89819719 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:选择排序
下一篇:冒泡算法

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月07日 08时36分54秒