首页 > 编程知识 正文

直接选择排序算法,选择排序和冒泡排序哪个快

时间:2023-05-03 11:53:27 阅读:141628 作者:1756

【基本思想】:将排序对象的数据要素,根据其关键词的大小,依次插入被排序的数据要素的适当位置。 自己和数据要素的个数,从只有一个数据要素开始依次变大,在子集合的大小最终变成与集合的大小相同的时候排序结束。

理解插入顺序的关键是理解以下三个问题。

1.往哪里进行插入

2.把哪个值进行插入

3.怎么实现插入的

a )在for循环中从0到n-1进行遍历时,上位I已排序,因此将i 1位与上位I进行比较以寻找插入位置。 比较时,将上位一个接一个地向后移动,I位覆盖i 1位,i-1位覆盖I位。

voidinsertsort(datatypea[],int n ) { int i,j; DataType temp; for(I=0; i n-1; I ) { temp=a[i 1]; //I1位数据进行定位,用于找位后的交换,避免移位时j=i被复盖;//用于对比第i1位和高位I位时的下标递减扫描。 while(j-1temp.keya[j].key ) { a[j 1]=a[j]; j----; } a[j 1]=temp; }初始排列http://www.Sina.com/http://www.Sina.com/789624第一次排序http://www.Sina.com/http://wwa.com/http://www.Sina.Sina http://www.Sina.com/624第三次排序http://www.Sina.com/http://www.Sina.com/24第四次排名http://www.Sina.com64第五次排序http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/com

难以理解,其最佳情况的时间复杂度比特o(n ); 最坏情况下下位o(n^2;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。