冒泡排序代码

来源:互联网 发布:javascript函数 编辑:程序博客网 时间:2024/05/01 06:49

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;

  }

  }

  }

  }

  io.print("----------------")

  io.print("冒泡排序( 交换类换排序 )")

  io.print("----------------")

  array ={2;46;5;17;1;2;3;99;12;56;66;21};

  bubble_sort(array,1,#array)

  //输出结果

  for(i=1;#array;1){

  io.print( array[i] )

  }

C

  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+j+1) = t; /*完成交换*/

  k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/

  }

  }

  }

  }

C++

  #include <iostream>

  #define LEN 9

  using namespace std;

  int main()

  {

  int nArray[LEN];

  for(int i=0;i<LEN;i++)nArray[i]=LEN-i;

  cout<<"原始数据为:"<<endl;

  for(int i=0;i<LEN;i++)cout<<nArray[i]<<" ";

  cout<<endl;

  //开始冒泡

  {

  int temp;

  for(int i=LEN-1;i>0;i--)

  for(int j=0;j<i;j++)

  {

  if(nArray[j]>nArray[j+1])

  {

  temp=nArray[j];

  nArray[j]=nArray[j+1];

  nArray[j+1]=temp;

  }

  }

  }

  //结束冒泡

  cout<<"排序结果:"<<endl;

  for(int i=0;i<LEN;i++)cout<<nArray[i]<<" ";

  return 0;

  }

PHP

  <?php

  //冒泡排序(一维数组)

  function bubble_sort($array)

  {

  $count = count($array);

  if ($count <= 0) return false;

  for($i=0; $i<$count; $i++)

  {

  for($j=$count-1; $j>$i; $j--)

  {

  if ($array[$j] < $array[$j-1])

  {

  $tmp = $array[$j];

  $array[$j] = $array[$j-1];

  $array[$j-1] = $tmp;

  }

  }

  }

  return $array;

  }

  //使用实例

  $_array = array('5', '8' ,'5' ,'6' ,'9' ,'3' ,'2' ,'4');

  $_array = bubble_sort($_array);

  print ($_array);

  ?>

Ruby

  def bubble(arr)

  (arr.length-1).downto(1) do |j|

  a1 = arr.dup

  j.times do |i|

  if arr > arr[i+1]

  arr,arr[i+1] = arr[i+1],arr

  end

  end

  break if a1 == arr

  end

  arr

  end

Java

  // 冒泡排序

  public class BubbleSort {

  public static void sort(Comparable[] data) {

  // 数组长度

  int len = data.length;

  for (int i = 0; i < len - 1; i++) {

  // 临时变量

  Comparable temp = null;

  // 交换标志,false表示未交换

  boolean isExchanged = false;

  for (int j = len - 1; j > i; j--) {

  // 如果data[j]小于data[j - 1],交换

  if (data[j].compareTo(data[j - 1]) < 0) {

  temp = data[j];

  data[j] = data[j - 1];

  data[j - 1] = temp;

  // 发生了交换,故将交换标志置为真

  isExchanged = true;

  }// end if

  }// end for

  // 本趟排序未发生交换,提前终止算法,提高效率

  if (!isExchanged) {

  return;

  }// end if

  }// end for

  }// end sort

  public static void main(String[] args) {

  // 在JDK1.5版本以上,基本数据类型可以自动装箱

  // int,double等基本类型的包装类已实现了Comparable接口

  Comparable[] c = { 4, 9, 23, 1, 45, 27, 5, 2 };

  sort(c);

  for (Comparable data : c) {

  System.out.println(data);

  }

  }

  }

Visual Basic

  Sub ttttttttt()

  Dim a, c As Variant

  Dim i As Integer, j As Integer, temp As Integer, bSwap As Boolean

  a = Array(17, 45, 12, 80, 50)

  For j = 0 To UBound(a) - 1

  bSwap = False

  For i = 0 To UBound(a) - 1

  If (a(i) > a(i + 1)) Then '若是递减,改为a(i)<a(i+1)

  temp = a(i)

  a(i) = a(i + 1)

  a(i + 1) = temp

  bSwap = True

  End If

  Next

  If bSwap = False Then

  Exit For

  End If

  Next

  For Each c In a

  Debug.Print c;

  Next

  End Sub

Pascal

  program name;

  var

  a:array[1..N] of 1..MAX;

  temp,i,j:integer;

  begin

  randomize;

  for i:=1 to N do a:=1+random(MAX);

  writeln('Array before sorted:');

  for i:=1 to N do write(a,' ');

  writeln;

  for i:=N-1 downto 1 do

  for j:=1 to i do

  if a[j]<a[j+1] then

  begin

  temp:=a[j];

  a[j]:=a[j+1];

  a[j+1]:=temp

  end;

  writeln('Array sorted:');

  for i:=1 to N do write(a,' ');

  writeln;

  writeln('End sorted.');

  readln;

  end.

C#

  public void BubbleSort(int[] array)

  {

  int length = array.Length;

  for (int i = 0; i <= length - 1; i++)

  {

  for (int j = length - 1; j > i; j--)

  {

  if (array[j] < array[j - 1] )

  {

  int temp = array[j];

  array[j] = array[j - 1];

  array[j - 1] = temp;

  }

  }

  }

  }

Python

  #BubbleSort used python3.1 or python 2.x

  def bubble(str):

  tmplist = list(str)

  count = len(tmplist)

  for i in range(0,count-1):

  for j in range(0,count-1):

  if tmplist[j] > tmplist[j+1]:

  tmplist[j],tmplist[j+1] = tmplist[j+1],tmplist[j]

  return tmplist

  #useage:

  str = "zbac"

  print(bubble(str)) # ['a', 'b', 'c', 'z']

  number=[16,134,15,1]

  print(bubble(number)) # [1, 15, 16, 134]

JS

  <script language="javascript">

  var DataOne=new Array(5,6,7,8,3,1,2,-1,100)

  var len=DataOne.length

  for(var i=0;i<len;i++)

  {

  for(var j=0;j<len;j++)

  {

  One=DataOne[j]

  Two=DataOne[j+1]

  if(One<Two)

  {

  DataOne[j]=Two

  DataOne[j+1]=One

  }

  }

  }

  var str=""

  for(var n=0;n<len;n++)

  {

  str+=DataOne[n]+","

  }

  alert(str)

  </script>

原创粉丝点击