本文目录一览

1,冒泡排序方法可细分为几种

冒泡排序法,不分几种,冒泡排序就是冒泡排序,自己自成一派,就像设计模式一样,冒泡排序就是一种排序的方法,这种方法不论你使用哪一种编程语言都可以用,只不过不同的编程语言语法不同,那么写出来的代码有区别,但是思想是不变的。

冒泡排序方法可细分为几种

2,C语言冒泡算法

最简单的排序方法是冒泡排序方法。 这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。 void doit(float* in,int count) (*(in+x-1)))

C语言冒泡算法

3,C中的冒泡法和选择法有什么区别

冒泡和快速排序的区别在于:冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素。将待排序的元素看作是竖着排列的"气泡",较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个"气泡"序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即"轻"的元素在下面,就交换它们的位置。显然,处理一遍之后,"最轻"的元素就浮到了最高位置;处理二遍之后,"次轻"的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是"最轻"元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。 所以,选择排序每扫描一遍数组,只需要一次真正的交换,而冒泡可能需要很多次。比较的次数是一样的。 其实看你声明的变量的个数就知道了。选择的要比冒泡的多声明一个,用来存储最小(或最大的)元素的下标。而冒泡的比较后直接换。

C中的冒泡法和选择法有什么区别

4,冒泡法排序java代码 排序1 8 5 2 4 9

public class Test public static void main(String[] args) int[] a = //冒泡排序 for (int k = 0; k for (int j = k + 1; j if (a[k] > a[j]) int temp = a[k]; a[k] = a[j]; a[j] = temp; } } } System.out.println("排序后: "); for(int i = 0; i System.out.print(a[i] + " "); } }}
public class BubbleTest int[] array = new int[] public void test() for(int i = 0; i < array.length; i++) for(int j = 0; j < array.length - 1; j++) /* * 从大到小排 */ int temp; if(array[j] < array[j+1]) temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } /* * 从小到大排序 * if(array[j] > array[j+1]) temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; }*/ } } for(int i = 0; i < array.length; i++) System.out.print(array[i]+"--"); } } public static void main(String[] args) BubbleTest b = new BubbleTest(); b.test(); }}

5,关于c中的冒泡法

我给你说介绍一下吧 比如五个数,用起泡法从小到大排序. 先用第一个数与第二个数比较,把大的数,放在第二个位置, 然后用第二个与第三个数比较,把大的数放在第三个位置, 然后用第三个数和第四个数比较,把大的数放在第四个位置, 然后用第四个数和第五个数比较,把大的数放在第五个位置, 这样,就把五个数中最大的数放在第五个位置了, 同理,把第二大的放在第四个位置, 把第三大的放在第三个位置, 第四大的放在第四个位置, 就排好了! 顺便给你介绍一下选择排序法,你可以二个对比一下,加深记忆. 也以五个数从小到大排序为例: 先用第一个数与第二个数比,小的放在第一个位置, 然后用第一个数与第三个数比,小的放在第一个位置, 用第一个数与第四个数比,小的放在第一个位置, 用第一个数与第五个数比,小的放在第一个位置. 这样,最小的数放在第一个位置, 同理,用第二个数与后面的比,将第二小的放在第二个位置, 第三小的放在第三个位置, 第四小的放在第四个位置.完成了,以下,我学C语言的时候写的代码,是十个数比的,C的代码在C++上也能运行,你只要看一下循环的部分,加深一下理解就成了:代码如下: 选择法: #include "stdio.h" main() { int a[11]; int i,j,k,n; for (i=1;i<11;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) for(j=i+1;j<=10;j++) { (a[i]>a[j])?(a[0]=a[i],a[i]=a[j],a[j]=a[0]):(a[0]=0); } for(i=1;i<11;i++) printf("%5d",a[i]); } 起泡法: #include "stdio.h" main() { int a[11]; int i,j; for(i=1;i<11;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) for(j=1;j<=10-i;j++) (a[j]>a[j+1])?(a[0]=a[j],a[j]=a[j+1],a[j+1]=a[0]):(a[0]=0); for(i=1;i<11;i++) printf("%5d",a[i]); }

6,pascal冒泡法

randomize;var:a:array[1..20]of integer;i,j,k,t:integer;beginfor i:=1 to 20 doa[i]:=random(100);for j:=1 to 19 dofor k:=j+1 to 20 doif a[j]>a[k] then begint:=a[j];a[j]:=a[k];a[k]:=t;end;for i:=1 to 20 dowrite(a[i]:3);end.
var a:array[1..100] of longint; i,j,t:longint;begin randomize; for i:=1 to 20 do a[i]:=random(100);for i:=1 to 20 do write(a[i]:4);for i:=1 to 20 do for j:=1 to 19 do if a[j]>a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t; end;for i:=1 to 20 do write(a[i]:4);readln;end.
program xx18;var a:array[1..20]of integer; i,j,l:integer;begin randomize; for i:=1 to 20 do a[i]:=random(99)+1; for i:=1 to 19 do for j:=1 to 20-i do if a[j]>a[j+1] then begin l:=a[j]; a[j]:=a[j+1]; a[j+1]:=l; end; for i:=1 to 20 do if a[i]<>a[i+1] then write(a[i]:3); writeln;end.4 3 3 3 2 2 1 3 4 2 2 3 1 2 (第三大的) 2 2 4 1 1 3 (第二大的) 3 1 1 1 4 (最大的)4 4 4
var a:array[1..20]of integer;i,j:integer;procedure swap(var a,b:integer); var t:integer;begin t:=a;a:=b;b:=t;end;begin randomize; for i:=1 to 20 do a[i]:=random(100); for i:=1 to 19 do for j:=i+1 to 20 do if a[i]>a[j] then swap(a[i],a[j]);end.

文章TAG:冒泡法  冒泡排序方法可细分为几种  
没有了