冒泡排序法实例

/**

* @ClassName: Exercise8_1

* @Description: 演示数组的冒泡排序算法

* @author: YuHong

* @date: 2014年2月5日 下午2:25:04

*/

public class Exercise8_1
{
public static void main( String[] args )
{
int[] a = { 25, 24, 12, 76, 98, 101, 90, 28 };
int i = 0;
int j = 0;
int swap = 0;

System.out.println( "排序前数组a的元素为:" );
for( i = 0 ; i < a.length; ++i ) // 输出数组的元素
{
System.out.print( "a[" + i + "] = " + a[i] + " " );
}

for( i = 0; i < a.length; ++i )
{
for( j = 1; j < a.length-i; ++j )
{
if( a[j-1] > a[j] ) // 如果顺序错了,就交换一下
{
swap = a[j];
a[j] = a[j-1];
a[j-1] = swap;
}
}
}

System.out.println( "\n排序后数组a的元素为:" );
for( i =0 ; i < a.length; ++i ) // 输出数组的元素
{
System.out.print( "a[" + i + "] = " + a[i] + " " );
}
}
}

时间: 2024-12-15 19:29:22

冒泡排序法实例的相关文章

Java冒泡排序法实现

“冒泡排序法”可以将一个无序的数组按照从小到大的顺序或者是从大到小的顺序进行排序,是一种较为常见的排序算法,因为数据从小到大或者从大到小地到数列头或者数列末的过程称为“冒泡”.对于冒泡排序我觉得最重要的两点就是:(1)需要重新排序的次数,即循环的次数,这个是根据数组的序列的大小来定的,比如数组的大小为n的话,需要循环的次数就为(n - 1)次:(2)另外一个就是每次循环需要进行数据之间比较的次数,每次排序后可以确定出最大或者最小的那个数据,下次循环时就不用再进行比较了,所以每次进行比较的次数是(

算法大神之路----排序(冒泡排序法)

冒泡排序法 冒泡排序法又称为交换排序法,是由观察水中冒泡变化构思而成,气泡随着水深压力而改变.气泡在水底时,水压最大,气泡最小,而气泡慢慢浮上水面时,气泡所受压力最小,体积慢慢变大. 冒泡排序比较方式是从第一个元素开始,比较相邻的元素大小,如果大小顺序有误,则对调后进行下一个元素比较.直到所有元素满足关系为止. 冒泡排序法分析 冒泡排序法平均情况下,需要比较(n-1)/2次,时间复杂度为O(n2),最好的情况只需要扫描一次,不用操作,即作n-1次比较,时间复杂度为O(n). 由于冒泡排序为相邻两

PHP 冒泡排序法

1 <?php 2 // 冒泡排序法:将一个数组中的值按照从小到大的顺 序排序 3 $arr = array(1, 4, 5, 2, 3, 7, 9, 8); 4 $len = count($arr); 5 $len2= $len - 1; 6 for ($i = 0; $i < $len; $i++) 7 { 8 for ($j = 0; $j < $len2; $j++) 9 { 10 if ($arr[$j] > $arr[$j + 1]) // 比较当前的与下一个的大小 1

关于Java中的选择排序法和冒泡排序法

一,这种方法是直接传入一个数组进行排序(选择排序法) public static void selectSort(int arr[]){ for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j < arr.length; j++) { if(arr[j]<arr[i]){ int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } } 二,这种事传入一个数组和一个数组个数(选择排序

PHP冒泡排序法

冒泡排序法是一种很基础的排序方法,也是面试题中经常问到的一道题目.今天做了一下简单的分析,具体代码和思路如下 1 <?php 2 3 /*思路: 4 *按照元素顺序循环比较, 5 * 当前元素为$array[$i],取后面的元素与 6 * $array[$i]比较,所以应该从第$j($j=$i+1)个元素开始比较; 7 * 8 *比较$array[$i]和$array[$j]的大小,将较大的元素放到前面,所以要使用中间变量$tmp 9 *过渡 10 * 11 *因为$i次循环后,只能保证$arr

C#冒泡排序法学习

一,冒泡排序法理解:就是将一个集合里的数据当前位置和后一位比较,然当前位置大于后一位,则两个位置替换,直到排序完成 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MaoPao { class Program { static void Sort(int[] sArray) { bool sw = true; do { sw = false; for (

【算法分析】冒泡排序法

今天突然心血来潮了,想开始看算法了,立此博文,开始对算法系列开始完善,争取每周两文.在分析过程中可能想法较笨,希望各位能够宽容和帮助,如果有更好的意见和建议,可随时留言批评.闲话少数,开始正文. 第一次程序 // 通过一次循环将数组中第一个数安排到数组中比它小的数之前 for (int i = 0; i < test.Length - 1; i++) // 此处不能为test.Length,数组溢出.说明从头到尾交换的最大次数 = 数组元素个数 - 1 { if (test[i] < test

C#冒泡排序法及优化

冒泡排序法及优化: static void Main(string[] args) { int[] sums = { 20, 2, 1, 26, 27, 28 }; int compareCount = 0; //冒泡排序法 for (int i = 0; i < sums.Length - 1; i++) //总共要比较的趟数 { for (int j = 0; j < sums.Length - 1 - i; j++) //每趟中要比较的次数 { if (sums[j] > sums

1)①排序算法之交换排序[1]冒泡排序法

1 #include "iostream" 2 using namespace std; 3 4 //************冒泡排序法********* 5 int bubble_sort(int n,int array[100]){ 6 bool exchange; 7 int i,j,temp; 8 i=1; 9 do{ 10 exchange=false; 11 for(j=n-1;j>=i;j--){ 12 if(array[j]<array[j-1]){ 13