[我做的google数组随机排序的算法]发信人: northor(追求理想的过程是曲折艰辛的!), 信区: Job 标 题: 我做的google数组随机排序的算法 发信站: 瀚海星云 (2006年05月30日23:44:13 星期二), 站内信件 POST 由...+阅读
什么是冒泡排序算法
基本思路:对尚未排序的各元素从头到尾依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。可以看出如果有 n 个元素,那么一共要进行 n-1 轮比较,第 i 轮要进行 j=n-i 次比较。
我也不知道你说的是用哪种语言编写:就列出了如下几种,希望你能满意
#include
void main()
{
int a[10];
int i,j,t;
printf("输入10个整数:\n");
for( i = 0; i < 10; i ++ )
scanf("%d",&a[ i ]); //依次输入10个整数
for( j = 0; j < 9; j ++ ) //进行9轮排序 即n-1次
{
for( i = 0; i < 9-j; i ++) //每轮进行n-1-j 次比较,最多n-1-j 次交换
if( a[ i ] > a[ i + 1 ] )
{
t = a[ i ] ;
a[ i ] = a[ i + 1 ]; //小的沉底,大的上浮
a[ i + 1 ] = t;
}
}
printf("排序结果:");
for( i = 0; i < 10; i ++ ) //依次输出排序结果
printf("%d\t",a[ i ]);
printf("\n");
}
PASCAL为例子
procedure Bubble_Sort(var L:List);
vari,j:position;
begin
for i:=First(L) to Last(L)-1 do
for j:=First(L) to Last(L)-i do
if L[j]>L[j+1] then 4 swap(L[j],L[j+1]);
//交换L[j]和L[j+1]
end;
下面使用c++语言编写
#include
void main()
{
int a[n],i,j,temp;
cout<<;"请输入数字:"< for(i=0;i<=n;i++) cin>>a; //依次输入n个整数 for(i=0;i { for(j=i+1;j if(a
{ temp=a[j]; a[j]=a; a=temp; } cout<
} 下面使用Visual Basic编写 Option Explicit Private Sub Form_Load() Dim a, c As Variant Dim i As Integer, temp As Integer, w As Integer a = Array(12, 45, 17, 80, 50) For i = 0 To UBound(a) - 1 If (a(i) > a(i + 1)) Then '若是递减,改为a(i)
temp = a(i) a(i) = a(i + 1) a(i + 1) = temp End If Next For Each c In a Print c; Next End Sub package mainimport "fmt"func Bub(value []int) { flag := true //这里是打一个标识的意思 for i := 0; ivalue[j+1] { value[j], value[j+1] = value[j+1], value[j] flag = false } } if flag == true { //当没有发生位置交换的时候说明,顺序排好了 break } }}func main() { a := []int{7, 2, 1, 3, 5} Bub(a)} 只能帮你到这里了,建议你用在纸上演算一遍 那个 a 变量... #include void main () { int i,j,k; int a[10]; printf("请输入10个数:\n"); for (i=0;i<=9;i++) scanf("%d",&a[i]); printf("\n"); for (j=0;j<=9;j++) for (i=0;i<9-j;i++) if(a[i]>a[i+1]) {k=a[i],a[i]=a[i+1],a[i+1]=k;} printf("则数字由小到大为:\n"); for (i=0;i<10;i++) printf("%d",a[i]); printf("\n"); }自己试试~ 延伸阅读: google数组随机排序的算法由于一开始觉得这个题目不太好做, 就放在最后做了, 结果时间不够,只写了算法: 我考虑题干强调的是一定要随机,就是越乱越好, 于是我就联想到了一堆乒乓球在笼子里摇啊摇的,... 做的google数组随机排序的算法由于一开始觉得这个题目不太好做, 就放在最后做了, 结果时间不够,只写了算法: 我考虑题干强调的是一定要随机,就是越乱越好, 于是我就联想到了一堆乒乓球在笼子里摇啊摇的,... 笔试中各种排序算法的复杂度大家应该注意的是复杂度中带logN的这几个算法! 排序法平均时间最差情形稳定度额外空间备注冒泡O(n2)O(n2)稳定O(1)n小时较好交换O(n2)O(n2)不稳定O(1)n小时较好选择O(n2)O(n... java算法面试题排序都有哪几种方法一、冒泡排序 [java] view plain copy package sort.bubble; import java.util.Random;/*** 依次比较相邻的两个数,将小数放在前面,大数放在后面* 冒泡排序,具有稳定性* 时间复... 算法是什么怎么写学对于程序员来说,学习算法真的很重要。今天我就来给大家讲一讲到底什么是算法,如何更好的去学习算法。所谓算法指的是解决实际问题的一系列方法。很多人以为算法是一个新词汇,只... java算法面试题:排序都有哪几种方法一、冒泡排序 [java] view plain copy package sort.bubble; import java.util.Random;/*** 依次比较相邻的两个数,将小数放在前面,大数放在后面* 冒泡排序,具有稳定性* 时间复... 华为校招应聘进度显示面试已通过录用排序中是什么意思说明面试通过了,但是需要录用排序,过些日子轮到你了就可以去签合同。 1、面试是测查和评价人员能力素质的一种考试活动,面试是一种经过组织者精心设计,在特定场景下,以考官对考生... 算法是什么?怎么写学对于程序员来说,学习算法真的很重要。今天我就来给大家讲一讲到底什么是算法,如何更好的去学习算法。所谓算法指的是解决实际问题的一系列方法。很多人以为算法是一个新词汇,只... 六部的官职排序是怎样的六部的官职排序依次为吏部、户部、礼部、兵部、刑部、工部。 1、吏部 作为古代主管各级官员的行政机构,自汉朝以后,吏部就被列为尚书省六部之首,肩负着针对文职官员“品秩铨选...Go语言冒泡排序逻辑求解释请根据这段代码解释下就是没看懂i是
C语言编程冒泡法排序问题