十大排序算法之冒泡排序
一、冒泡排序基本思想
- 设待比较元素总个数为n,用长度为n的数组存储。
- 那么数组下标为0~n-1。
- 相邻元素比较,大的往后移,小的往前排。
- 从下标为0和下标为1的元素开始比较,接着比较1,2,接着2,3…直到第一轮比较完,最后一个元素为此时整个待排序数列中最大的一个数。那么下轮比较只需要比较前n-1个元素即可。即数组下标只需要从0~n-2。
- 依次重复,直到最后一轮比较下标为0和下表为1的元素即完成冒泡排序。
二、代码示例
1.可能用到的函数
①交换函数
//交换a,b
/*void swap(int &a,int &b)
{
int tamp=a;
a=b;
b=tamp;
}
*/
②foreach 循环函数
for(数据类型 变量名:数组名称)
{
执行语句;
}
2.java实现
代码如下(示例):
public class Bubble_sort { //定义类
public static void main(String[] args) { //主函数
int[] ages = {96, 63, 125, 36, 22, 18, 64,100}; // 定义名为ages的实例数组
for (int i = 0; i < ages.length - 1; i++) { //从0到n-1轮比较
for (int j = 1;j < ages.length-i; j++) { //第一轮比较,从下标为j(1)和下标j-1(0)开始
if (ages[j - 1] > ages[j]) { //如果第一个元素(下标0)大于第二个元素(下标1)
int temp = ages[j]; //则交换它们的位置。
ages[j] = ages[j - 1];
ages[j - 1] = temp;
}
}
}
System.out.println("从小到大排序后的结果是:"); //在循环外进行输出从小到大排好序的元素。
for(int i=0;i<ages.length;i++)
System.out.print(ages[i]+" "); //使用for循环 语句进行输出
}
}