使用冒泡排序法对序列12, 9,7,8进行升序排列,第一轮过后,位于正确位置的是?
已知序列{8,7,4,6,5,2,3,1,9},冒泡排序法对序列进行从小到大排序过程为:
{8,7,4,6,5,2,3,1,9}
={7,4,6,5,2,3,1,8,9}
={4,6,5,2,3,1,7,8,9}
={4,5,2,3,1,6,7,8,9}
={4,2,3,1,5,6,7,8,9}
={2,3,1,4,5,6,7,8,9}
={2,1,3,4,5,6,7,8,9}
={1,2,3,4,5,6,7,8,9}
扩展资料:
冒泡排序算法的原理如下比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变。
我发个java的,和C#应该有几分相似
是升序的,降的话只需要把里面的大于换成小于就可以了
public class MPSort { public static void main(String[] args) { int[] arr = {2, 4, 1, 5, 6, 7, 3, 8, 9, 0}; sort(arr); for (int a : arr) { System.out.println(a); } } /** * */ public static void sort(int[] arr) { int temp; for (int i = 0, j = arr.length; i arr[x + 1]) { temp = arr[x]; arr[x] = arr[x + 1]; arr[x + 1] = temp; } } } }}
已知序列(25,16,32,18,20,36,12)请给出采用冒泡排序对该序列做升序排序...
冒泡排序的过程很简单,将第一个记录的关键字与第二个进行比较,若为逆序排列(L.r[1].key>l.r[2].key),就交换,然后比较第二个记录与第三个……依次类推,直至第n-1个记录和n个记录的关键字进行过比较为止。此过程做第一趟冒泡排序,结果是关键字最大的记录被安置到最后一个记录位置。然后...
用冒泡排序法对数据7,5,4,4,9,2从小到大进行排列,经过第一趟排列后...
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.至此第一趟结束,将最大的数放到了最后....
用冒泡法排序方法将关键字序列43,12.87.56.12进行升序排序,写出每一 ...
冒泡排序是把相邻的两个数比较,每一次都会有一个最大的数“冒”上来,故每次比较的次数都会减一。第一次:12 43 56 12 87 第二次:12 43 12 56 87 第三次:12 12 43 56 87
利用冒泡排序算法,将如下序列按升序排列。并计算总比较次数。23,7,9...
C可以这么写——代码文本:include "stdio.h"int main(int argc,char *argv[]){ int a[6]={23,7,91,7,12,63},i,j,k,t;for(t=i=0;i<6;i++){ for(j=0;j<5;j++)if(t++,a[j]>a[j+1])k=a[j],a[j]=a[j+1],a[j+1]=k;} for(i=0;i<6;printf("%d ",a...
对于长度为n的序列,采用冒泡排序法进行排序,一定要进行n-1遍比较和...
这是错的,参考冒泡的代码比较交换代码 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[i+1];a[i+1]=temp;} } 第一个for循环是n-1, 第二个for循环是n -1 -j, 冒泡排序的时间复杂度是O(n^2)
对N个元素进行排序,用冒泡法进行排序时,共需排几次?
最好情况需比较n-1次,最坏情况需比较(n-1)\/2。冒泡排序基本思想: 冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。直观表达,每一趟遍历,将一个最大的数移到序列末尾。基本步骤:1、外循环是遍历每个元素,每次...
...45,67,31,15,41},请给出采用冒泡排序法对该序列作递增排序时每一趟的...
初始关键字序列: 23 38 22 45 67 31 15 41 第一趟排序后: 23 22 38 45 31 15 41 67 第二趟排序后: 22 23 38 31 15 41 45 67 第三趟排序后: 22 23 31 15 38 41 45 67 第四趟...
冒泡排序对序列E,X,A,M,P,L,E按照字母顺序排序
\/\/怎么多了个E,我把最后的E改成F include<stdio.h> void main(){ char a[7]={'E','X','A','M','P','L','F'};int i,j;char t;for(j=0;j<7;j++)for(i=0;i<7-j;i++)if(a[i]>a[i+1]){ t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("the sorted ...
用冒泡排序法对序列
第一次:14,6,18,8,12,16,27,10,26,47,29,41,24,52 第二次:6,14,8,12,16,18,10,26,27,29,41,24,47,52 第三次:6,8,12,14,16,10,18,26,27,29,24,41,47,52 第四次:6,8,12,14,10,16,18,26,27,24,29,41,47,52 第五次:6,8,12,10,14,16,18,26,24,27,29,...
用冒泡排序法对输入的10个数进行升序排序 并存入数组中
1、打开sublime text 3,点击左上方的“文件”,选择“新建文件”,新建一个后缀名为.html的文件,并命名标题。2、在Body中添加一个简单的input按钮,添加一个点击事件mymaopao,用来在浏览器中查看效果。3、定义两个变量i,j。使用两个for循环嵌套遍历数组,第一个i作用为循环次数,第二个j作用是...
缑潘小儿: #include <stdio.h> void bubble_sort(int *x, int n) {int j,k,h,t;for (h=n-1;h>0;h=k) /*循环到没有比较范围*/{for(j=0,k=0;j<h;j++) /*每次预置k=0,循环扫描后更新k*/{if (*(x+j)<*(x+j+1)) /*小的放在后面,大的放到前面*/{t=*(x+j);*(x+j)=*(x+j+1);*(x...
姜堰市13823293213: 采用冒泡排序方法,对10个数按由小到大的顺序排列的c语言程序 - ?
缑潘小儿: #include <stdio.h> int main() {int a[10];//用来存数据int i,j,temp; for(i = 0; i < 10; i ++)//输入10个数.scanf("%d",&a[i]);for (j = 0; j < 9; j++)//标准冒泡法排序for (i = 0; i < 9- j; i++){if(a[i] > a[i + 1]){temp = a[i];a[i] = a[i + 1];a[i + 1] = ...
姜堰市13823293213: 用你C语言使用冒泡法排序将字符串”12,24,20,54,6,9,36”排序后先从小到大输出再从大到小输出 - ?
缑潘小儿: 这个简单,开始没看清是字符,都一个道理加个转换好了,当然这好像不是常规方法 : int score[7]; int i=0; int j=0; int t=0; char ch[][2]={"12","24","20","54","6" ,"9","36"}; //将字符串转化为数字 for(i=0;i<7;i++) { if(ch[i][1]=='\0')...
姜堰市13823293213: 编程题:用冒泡排序法将一维数组A[10]={1、2、4、3、6、5、7、8、9、10}进行排列. - ?
缑潘小儿: C语言????#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; flag = 0; } } if(1 == ...
姜堰市13823293213: 序列{68.26.33.77.12.48.84}使用冒泡排序(升序),经第一躺排序后的结果是? - ?
缑潘小儿: d 冒泡排序算法的运作如下:(从后往前) 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最后一个. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较.
姜堰市13823293213: C语言 用起泡发(货称冒泡法)对15.5.9.2.7.11.8.3.12.1共10个整数由小发到大排序.数组方法 - ?
缑潘小儿: #include void sort(int *a,int n){//冒泡排序函数 int i,j,t; for(i=0;i for(j=0;j if(a[j]>a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } void print(int *a,int n){//打印函数 int i; for(i=0;i printf("%d ",a[i]); } printf("\n"); } int main(){ int a[]={15,5,9,2,7,11,8,3,12,1}; printf("...
姜堰市13823293213: 用冒泡排序法将无序列{7,1,3,12,8,4,9,10}按照从大到小的顺序排列,并画出该算法的流程图. - ?
缑潘小儿:[答案] 略可以按照冒泡排序的方法及过程对所给数据逐趟进行排序.我们将第一趟的排序过程详细写出,其余各趟的排序过程不再详细列出,如图所示;第1趟上述算法的流程图如图所示:冒泡排序的算法过程中主要以循环结构和选择结构为主,同时也用到...
姜堰市13823293213: 用冒泡排序法对一个数列排序?
缑潘小儿: #include "stdio.h" #define N 5 void main() { int i,j; int grade[N],temp; printf("\n输入%d个整数:\n",N); for(i=0;i<N;i++) { scanf("%d",&grade[i]); } for(i=0;i<N;i++) { for(j=0;j<N-i-1;j++) { if(grade[j]<grade[j+1]) { temp = grade[j+1]; grade[j+1]=grade[j...
姜堰市13823293213: java利用冒泡法对数组{88,35,196,230,12,67,99,567,9}进行升序排序,并输出. - ?
缑潘小儿: 1、冒泡排序:public static void main(String[] args) { int[] arr = {88, 35, 196, 230, 12, 67, 99, 567, 9}; bubbleSort(arr); printArr(arr); } static void bubbleSort(int[] arr) { int temp; for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (...