一维数组的冒泡排序
答:// 排序函数,参数为待排序数组和数组长度 void sort(int arr[], int len) { int i, j, tmp;// 冒泡排序 for (i = 0; i < len - 1; i++) { for (j = 0; j < len - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 相邻元素比较,如果前面的大于后面的,则...
答:(1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。(2)比较第2和第3个数,将小数 放在前面,大数放在后面。...(3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成(4)在上面一趟比较完成后,最后一个数一定是数组中最大的一...
答:int i,j,temp; printf("请输入数组大小!\n");scanf("%d",&N);printf("请为%d个元素赋值\n",N); for(i=0;i<N;i++)scanf("%d",&A[i]); for(i=0;i<N;i++)for(j=0;j<N-i;j++)if(A[j]>A[j+1]){ temp=A[j];A[j]=A[j+1];A[j+1]=temp;} } printf("排序结果:\n"...
答:1、第一步,打开C文件,定义一组序列和要排序的各种变量,然后处理排序逻辑,具体的代码见下图,转到下面的步骤。2、第二步,完成上述步骤后,冒泡排序的逻辑是一组数字从第一个值开始,如果两个相邻数字的顺序与期望的顺序不同,则会交换两个数字的位置。 重复此过程,直到最后一个数字。如果需要交换...
答:产生100个0~100之间的随机整数,存放到数组a中,然后,调用排序函数(为简单起见,使用冒泡排序法)对数组排序后,在主函数中对数组进行再次输出,以便查看排序的效果。#include #include #include #define N 100void bubble_sort(int a[], int n){ int i, j, temp; for (j = 0; j < n ...
答:include <stdio.h>#include <conio.h>#define ARR_LEN 255 /*数组长度上限*/#define elemType int /*元素类型*//* 冒泡排序 *//* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 *//* 2. 对所有元素均重复以上步骤,直至最后一个元素 *//* elemType arr[]: 排序目标数组;...
答:public class test {private static void sort(Integer arr[], int n) {if (n <= 1) return; //如果只有一个元素就不用排序了for (int i = 0; i < n; ++i) {// 提前退出冒泡循环的标志位,即一次比较中没有交换任何元素,这个数组就已经是有序的了boolean flag = false;for (int...
答:数组就是一次性定义相同数据类型的一组变量数组定义。举例 int a[10]; 说明整型数组a,有10个元素。若要表示第10个元素,则使用a[9]。第一个则是a[0]。float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。char ch[20]; 说明字符数组ch,有20个元素。
答:h>#define N 5int main(){ int a[N],b[N],c[N],i,j,temp; for(i=0;i<N;i++){//输入数组,并用b保存数组a的值 scanf("%d",&a[i]); b[i]=a[i]; } for(i=0;i<N-1;i++)//对a从大到小冒泡排序 for(j=0;j<N-i-1;j++) if(a[j...
答:include "stdio.h"void bubble_sort(int array[],int n){//冒泡法排序 int i,j,flag,temp;for(i = 0; i < n-1; i++){ flag = 1;for(j = 0; j < n-i-1; j++){ if(array[j] > array[j+1]){ temp = array[j];array[j] = array[j+1];array[j+1] = temp;fla...
网友评论:
严居13271722823:
c语言一维数组冒泡排序 -
64990邵殷
: 如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式. 原理:比较两个相邻的元素,将值大的元素交换到右边 思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面. (1)第一次比较:首先比较第一和第二...
严居13271722823:
用冒泡排序法实现对一个一维数组. -
64990邵殷
: 分析:冒泡法排序的过程是:设有n个元素,要求从小到大排序.每次从首元素开始两两比较,即a[j]和a[j 1]比较,若a[j]大于a[j 1]则两元素交换,否则不交换,这样每一轮比较后都可得到“大数沉底,小数上浮一个位置”的结果,也就是说第一轮排好数组最后一个元素,第二轮排好数组最后两个元素...经过n-1轮比较后排序结束.#include#define n 5 int main() { int i,j,k,t,a[n]; printf("请输入一个包含%d个整数元素的数组:\n",n); for(i=0;i scanf("%d",
严居13271722823:
C语言用冒泡法对一维数组中10个数按降序进行排列 -
64990邵殷
: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23#include<stdio.h> intmain() {intn[]={1,2,3,4,5,6,7,8,9,10};inti,j,num;for(i=0;i<10;i++){for(j=i+1;j<10;j++){if(n[i]<n[j]){num=n[i];n[i]=n[j];n[j]=num;}}} printf("1,2,3,4,5,6,7,8,9,10...
严居13271722823:
如何用冒泡法能一维数组排序 -
64990邵殷
: /* 以下是完整代码,你看看吧 希望能帮助你 */ # includevoid sort_shengxu(int * pArr, int len) {int i,j,t;for (i=0; i {for (j=0; j {if (pArr[j] > pArr[j+1])// >表示升序 {t = pArr[j];pArr[j] =pArr[j+1];pArr[j+1] = t;}}}}void sort_jiangxu(int * ...
严居13271722823:
编程,一维数组a,请用冒泡法排序法按从大到小排序后输出,数组是(8,4,7,2,9) -
64990邵殷
: #include<stdio.h> void main() { int a[5];={8,4,7,2,9}; int i,j,t; for(j=0;j<4;j++) for(i=0;i<4-j;i++) if(a[i]<a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } for(i=0;i<5;i++) printf("%d",a[i]); printf("\n"); }
严居13271722823:
FORTRAN语言:用冒泡法排序将N个数(即动态一维数组)从大到小排列……基本思路是:对N个数,从第一个到第N个,主次比较相邻两个,大放前,这样... -
64990邵殷
:[答案] real*8 :: a(n) real*8 :: temp integer :: i,j do i=1,n-1 do j=i+1,n if (a(i) .lt. a(j)) then temp = a(i) a(i) = a(j) a(j) = temp endif enddo enddo
严居13271722823:
紧急!有一个编程题 应用一维数组,对10个数进行冒泡排序,使用按照从小到大的顺序输出.?????????????????? -
64990邵殷
: void bubble_sort(int a[],int n) { //将a中整数序列重新排列成从小到大的顺序 for(i=n-1,chang=TRUE;i>=1&&change;--i) { int m; change=FALSE;for(j=0;j if(a[j]>a[j+1]){m=a[j];a[j]=a[j+1];a[j+1]=m;change=TRUE;}} }//double_sort
严居13271722823:
用冒泡排序法对一维数组中的前N个整数按从小到大进行排序 -
64990邵殷
: for(j=n,i=1;i<=n-k;i++,j--)//每趟找出最该趟所有数中最小的放在数组的最前面的位置 if(a[j]<a[j-1]) {x=a[j];a[j]=a[j-1];a[j-1]=x;}
严居13271722823:
编程,用冒泡排序法对一维数组a中的元素按值从小到大进行排序.其中:Int a[]={20,3, - 2,60,15} -
64990邵殷
: import java.io.*; class BubbleSort {public static void main (String[] args) {Integer a[]={20,3,-2,60,15};Integer temp;for(int i=0;i<a.length;i++){for(int j=0;j<a.length;j++){if(a[i]<a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}//OutPutfor(int k=0;k<a....
严居13271722823:
急:C语言中用冒泡发对10个一维数组按从小到大顺序排序,并输出. -
64990邵殷
: 数组在内存中是顺序存储的,a[10]虽然越界,但是a[10]是有值的,你的程序升序排序能正确执行,你把if里面的>改成<,降序排序,程序就会出错,这是因为你的a[10]刚好是一个大数,a[9]>a[10]不成立,a[10]就没意义了. 要让你的程序无论升序还是降序都正确执行,改成 for(i=0;i<9;i++) for(j=i;j<10-i-1;j++) 就行了