『壹』 用自然语言/程序流程图/伪码表示一种排序算法。(冒泡排序/插入排序)

『贰』 c语言插入排序法

你拿几个数模拟一下就看到了。whille里的循环是负责每趟将最小的数排到它该在的位置,即第i趟循环是保证从0到i的元素单调增排列。temp是用来记录当前i中的元素,有可能while执行一次a[i]处就有了新元素,值就改变了,然而temp还要继续和前面的比较看看是不是仍要往前插入,这个循环一直是while在做

『叁』 c语言插入排序法,哪位高人举个例子,直接插入的那种

你手里有一张牌,A,接起一张Q,插入手中,你发现Q比A小,把它放在了A前面。专又接起一属张K,你先发现K比Q大,然后又发现K比A小,把K放在A前面。
这里有3个插入动作。我来解释一下
当插入第一个元素时,数组a[0]直接赋值A。因为不需要比

插入第二个时需要循环,从0到当前元素的个数··可写一个getsize()的函数 一个一个去比较。如果手中的牌key比元素大时,用continue跳过,如果key比元素a[i]小,则a[i]后面的所有元素向后移一位把key放在原来a[i]的地方。

ok如果你的数组是动态分配的,那么期间还需要使用realloc(size+1)的内存操作。插入成功后,size也要+1.说完了

『肆』 算法入门插入排序法(算法导论里面的伪代码)看不懂

for j = 2 to A.length 就是j从2循环到A.length的意思,A.length就是数组A的长度。
这句相当于for(j=2;j<=A.length;j++)

『伍』 想问您一些排序算法的伪代码,谢啦

冒泡排序:网页链接

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。

C++自带的algorithm库函数中提供了排序算法。

稳定的

冒泡排序(bubble sort) — O(n^2)

鸡尾酒排序(Cocktail sort,双向的冒泡排序) — O(n^2)

插入排序(insertion sort)— O(n^2)

桶排序(bucket sort)— O(n); 需要 O(k) 额外空间

计数排序(counting sort) — O(n+k); 需要 O(n+k) 额外空间

合并排序(merge sort)— O(nlogn); 需要 O(n) 额外空间

原地合并排序— O(n^2)

二叉排序树排序 (Binary tree sort) — O(nlogn)期望时间; O(n^2)最坏时间; 需要 O(n) 额外空间

鸽巢排序(Pigeonhole sort) — O(n+k); 需要 O(k) 额外空间

基数排序(radix sort)— O(n·k); 需要 O(n) 额外空间

Gnome 排序— O(n^2)

图书馆排序— O(nlogn) with high probability,需要 (1+ε)n额外空间

不稳定的

选择排序(selection sort)— O(n^2)

希尔排序(shell sort)— O(nlogn) 如果使用最佳的现在版本

组合排序— O(nlogn)

堆排序(heapsort)— O(nlogn)

平滑排序— O(nlogn)

快速排序(quicksort)— O(nlogn) 期望时间,O(n^2) 最坏情况; 对于大的、乱数列表一般相信是最快的已知排序

Introsort— O(nlogn)

耐心排序— O(nlogn+k) 最坏情况时间,需要 额外的 O(n+k) 空间,也需要找到最长的递增子串行(longest increasing subsequence)

不实用的

Bogo排序— O(n×n!) 期望时间,无穷的最坏情况。

Stupid sort— O(n^3); 递归版本需要 O(n^2) 额外存储器

珠排序(Bead sort) — O(n) or O(√n),但需要特别的硬件

Pancake sorting— O(n),但需要特别的硬件

stooge sort——O(n^2.7)很漂亮但是很耗时

『陆』 用自然语言,程序流程图,伪代码分别描述冒泡排序,选择排序和插入排序,并用C语言阐述

int a[]={33,76,26,88,15,92,37,49},i,j.k;
for(i=0;i<7;i++)
for(j=i+1;j<8;j++)
if(a[i]>a[j])
{k=a[i];a[i]=a[j];a[j]=k;}

『柒』 求写出使用插入排序算法进行排序的伪代码

伪代码如下
INSERTION-SORT(A)
1forj← 2tolength[A]
2dokey←A[j]
3InsertA[j] into the sorted sequenceA[1..j-1].
4i←j-1
5whilei>0 andA[i] >key
6doA[i+1] ←A[i]
7i←i-1
8A[i+1] ←key

C语言代码如下
void insertion_sort(int array[],int first,int last)
{
int i,j;
int temp;
for (i = first+1; i<=last;i++)
{
temp = array[i];
j=i-1;
//与已排序的数逐一比较,大于temp时,该数移后
while((j>=first) && (array[j] > temp))
{
array[j+1] = array[j];
j--;
}
array[j+1] = temp;
}
}