c语言考试。问数组,常见的数组排序算法有那几种?选择一个描述过程。

 我来答
修亦身p
2012-05-31 · TA获得超过110个赞
知道答主
回答量:85
采纳率:100%
帮助的人:74万
展开全部
有插入排序:直接插入排序、折半插入排序、希尔排序;交换排序:冒泡排序、快速排序;选择排序:简单选择排序、堆排序;归并排序;基数排序。
  常用冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面(数组由小到大排序)。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后,此时第一趟结束,在最后的数必是所有数中的最大数。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
  由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
  用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i, j的值依次为1,2,...10-i。
代码:
for(i=0; i<NUM-1; i++) /*外循环:控制比较趟数*/
for(j=NUM-1; j>i; j--) /*内循环:进行每趟比较*/
if(data[j]<data[j-1]) /*如果data[j]大于data[j-1],交换两者的位置*/
{temp=data[j];
data[j]=data[j-1];
data[j-1]=temp;
};
go华仔来了
2012-05-30
知道答主
回答量:16
采纳率:0%
帮助的人:4.7万
展开全部
常见的有冒泡、选择、插入法。其中冒泡最常用,列如:N个数字排序,外层循环N-1次,内层循环N-1-i.i为循环变量,明白不?
追问
太简单了。希望能详细下。  我这是考试题。。
追答
int t[]=10;//排序数
for(int i=0;ia[j])
{ int temp=a[i];a[i]=a[j];a[j]=temp; }
}
}
...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式