1.插入排序 INSERT-SORT
设数组A是无序数组
非降序
for( i = 2; i <= length[A]; i++ )
{
key = A[i];
j = i - 1;
while( j >= 1 && A[j] > key)
{
A[j + 1] = A[j];
j = j - 1;
}
a[j + 1] = key;
}
非升序
for( i = 2; i <= length[A]; i++ )
{
key = A[i];
j = i - 1;
while( j >= 1 && A[j] < key)
{
A[j + 1] = A[j];
j = j - 1;
}
a[j + 1] = key;
}
插入排序的运行时间为n^2
2.冒泡排序 BUBBLE-SORT
非降序
for ( i = 2; i <= length(A); i++ )
{
for( j = i; j >= 2; j-- )
{
if( a[j] < a[j - 1] )
{
exchange(a[j], a[j - 1]);
}
}
}
非升序略
冒泡排序的运行时间为n^2
本文详细介绍了插入排序和冒泡排序算法的工作原理、实现方式及时间复杂度,包括非降序和非升序排列的情况。插入排序的时间复杂度为O(n^2),冒泡排序同样如此。
2093

被折叠的 条评论
为什么被折叠?



