冒泡排序:bubsort函数功能实现N元整型数组元素由大到小冒泡排序 下面这个程序外循环是不是范围有误啊?

void bubsort(int a[],int N)
{
int i,j,t;
for(i=1;i<N-1;i++)
for(j=0;j<______;j++)
if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t}
}
为什么只循环n-2次,不是应该循环n-1次吗?

第1个回答  2011-03-21
按我的理解,确实,这个程序外层循环有问题。用冒泡法排序,外层循是用来判断循环次数的,循环次数应该是数组元素的大小-1,这里就是N-1次。 里层循环是是用来判定换位的,为了减少比较次数(因为每次循环都把最小的依次放最后了),这里N-i就对了(因为你i从1开始的)。
正确的程序应该是:
void bubsort(int a[],int N)
{
int i,j,t;
for(i=1;i<N;i++)
for(j=0;j<N-i;j++)
if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t}
}
第2个回答  2011-03-21
程序外循环范围没错,非常正确。
确实只循环n-1次,循环是从0开始的,你理解错了 ,不是从1开始的
for(j=0;j<_N-1-i_____;j++)
第3个回答  2011-03-21
你的理解是正确的,正确的代码应该为:
void bubsort(int a[],int N)
{
int i,j,t;
for(i=1;i<N;i++) ;外循环次数为N-1次
for(j=0;j<_N-i_____;j++)
if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t}
}
第4个回答  2011-03-21
因为第一个for循环中i=1,你假设N=3,则第一个for循环只循环了一次,即:先i=1,判断i<2,然后执行下面语句,执行完,i++,i等于2,然后i<2不成立,跳出循环,结束
第5个回答  2011-04-01
for(i=1;i<N-1;i++)
这一句是控制下一循环次数的,如果写成for(i=1;i<N;i++)可以,写成for(i=0;i<N-1;i++)也可以。
上面执行N-1次就可以
这一句for(i=1;i<N-1;i++)
之所以循环N-2次是因为i=N-1是要与<N-1时判断,这是的i并不比N-1小,所以退出循环。

冒泡排序:bubsort函数功能实现N元整型数组元素由大到小冒泡排序...
按我的理解,确实,这个程序外层循环有问题。用冒泡法排序,外层循是用来判断循环次数的,循环次数应该是数组元素的大小-1,这里就是N-1次。 里层循环是是用来判定换位的,为了减少比较次数(因为每次循环都把最小的依次放最后了),这里N-i就对了(因为你i从1开始的)。正确的程序应该是:void bu...

编写函数用冒泡排序法对数组中的n个数据进行从小到大的排序。
1、新建一个163.php。2、输入php网页的结构(<?php?>)。3、声明PHP与浏览器交互的文件类型和编码。4、使用 array() 函数定义一个$numbers数组。5、使用 sort() 函数对数组 $numbers 中的元素进行排序。6、使用 print_r() 函数,输出排序后的数组。7、运行网页,在浏览器中输出排序后的数组。

冒泡排序是什么意思?
所谓冒泡,就是模拟池塘里的小气泡。你可以假定小的往上跑的快,大的跑的慢。那么水底到水面上就形成了一串大小不同的泡泡。【截图注释】bubble_sort(A)函数名叫冒泡排序,需要传入一个数组A作为参数 { for( i=1 to N-1)10个人,其实排9轮就好了,最后一轮就一个人不用排 { haschang=false;...

冒泡排序时间复杂度
冒泡排序时间复杂度如下:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

给定一个整数序列,采用冒泡排序实现从大到小排列,并输出
<stdlib.h>void bubble_sort(int a[],int n);void bubble_sort(int a[],int n)\/\/n为数组a的元素个数{ int i,j,temp; for(j=0;j<n-1;j++) for(i=0;i<n-1-j;i++) { if(a[i]>a[i+1])\/\/数组元素大小按升序排列 { temp=a[i]; a[i]=a[...

面试必会八大排序算法(Python)
算法实现 二、冒泡排序 介绍 冒泡排序(Bubble Sort)是一种简单的排序算法,时间复杂度为O(n^2)。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素...

冒泡排序
冒泡排序的英文Bubble Sort,是一种最基础的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。

编程实现冒泡排序函数void bubbleSort(int arr[], int n);其中arr存...
void bubbleSort(int arr[], int n){ int i,j,t; for(i=0;i<n;i++){ for(j=0;j<n-1;j++){ if(arr[j]>arr[j+1]){ t=arr[j]; arr[j]=arr[j+1]; arr[j+1]=t; } } }}

C语言将冒泡排序(或选择排序)改造成函数,实现对一个一维数组中的元素进...
我感觉应该把函数原型改成 int *sort(int a[],int n) 会更好些呢?我的思路是:1.在函数中在定义一个个数为n的数组。2.将所要排序的数组拷贝到这个数组中。3.排序。4.将排好的数组返回

冒泡排序算法
冒泡排序代码 AAuto bubble_sort = function(array){ var temp;for( i=1;#array ){ \/\/i前面的已经是最小的数,并排序好了 for(j=#array;i+1;-1){ \/\/挨个比较 if(array[j]<array[j-1]){ \/\/小的总是往前排 bubble = array[j]array[j] = array[j-1];array[j-1] = bubble;...

相似回答
大家正在搜