四、 简单排序之冒泡排序

原理如图所示(画图太丑将就看看):

源代码:

public class Bubblesort {
public static void bubblesort(int[] array) //冒泡排序
{
int temp; //存放中间数值
for(int i=0;i<array.length-1;i++) //一趟又一趟
{
for(int j=array.length-1;j>i;j--) //一个数往上冒冒冒
{
if(array[j]<array[j-1])
{
temp =array[j-1];
array[j-1] = array[j];
array[j] = temp;
}
}
}

}
}

原文地址:https://www.cnblogs.com/fyz666/p/8453831.html

时间: 2024-11-13 06:56:36

四、 简单排序之冒泡排序的相关文章

简单排序,冒泡排序,鸡尾酒排序,快速排序

简单排序:每次找出最大(小)的数,从头开始依次排序. 1 public static int[] simplySort(int a[]) { 2 for (int i = 0; i < a.length - 1; i++) { 3 // int min = a[i]; 4 int minIndex = i; 5 for (int j =i + 1; j < a.length; j++) { 6 //我的代码 7 // if (a[j] < min) { 8 // min = a[j];

排序算法学习之简单排序(冒泡排序,简单选择排序,直接插入排序)

一.冒泡排序 冒泡排序算是最基础的一种算法了,复杂度为O(N^2),其基本思想是:从最低端数据开始,两两相邻比较,如果反序则交换.代码如下: /*最基本的冒泡排序*/ void BubbleSort1 (int n, int *array) /*little > big*/ { int i, j; for (i=0; i<n-1; i++) { for (j=n-1; j>i; j--) { if (array[j] < array[j-1]) { int temp = array

排序算法(简单排序,冒泡排序)

int[] a = new int[10]; for (int i = 0; i < a.length; i++) { a[i] = random(); System.out.print(a[i] + " "); } System.out.println(); int temp = 0; // 从小到大 // 简单选择排序法 // 方法1 int minIndex = 0; for (int i = 0; i < a.length - 1; i++) { minIndex

简单排序算法 冒泡排序 选择排序 插入排序

冒泡排序: 总体思路:对未排序的各个元素,依次比较两个元素,如果这两个元素为逆序(与想要的顺序相反),则交换这两个元素. 这样可以有两种排序的思路: 思路一: 固定位置排序:比如有一个未排序队列,下标依次为0,1,2,.....N-1, 第一轮排序:首先固定位置0,将下标为0的元素依次和下标为1.下标为2.....下标为N-1的元素相比较,若相比较的两个元素为逆序,则交换这两个元素,这样第一轮排序完之后,位置为0的元素,就是最大的(最小的). 第二轮排序:首先固定位置1,将下标为1的元素依次和下

我总结的四种排序

本帖为了快速牢靠的记住四种排序. 冒泡排序 冒泡排序的时间复杂度是O(n^2); 外层控制趟数,并且跟内层排序个数相关. $arr = [1,5,4,9,11]; $n = count($arr); $max = $n - 1; for($i = 0; $i < $max; $i++){     for($j = 0; $j < $max - $i; $j++){         if($arr[$j] > $arr[$j+1]){             $t = $arr[$j];

排序算法四:交换排序之冒泡排序

排序算法四:交换排序之冒泡排序 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言 在我的博文<"主宰世界"的10种算法短评>中给出的首个算法就是高效的排序算法.本文将对排序算法做一个全面的梳理,从最简单的"冒泡"到高效的堆排序等. 系列博文的前三篇讲述了插入排序的三种不同类型,本文讲述第二大类的排序算法:交换排序,包括冒泡排序和快速排序. 排序相关的的基本概念 排序:将一组杂乱无章的数据按一定的规律顺次排列起

直接插入排序、二分插入排序、希尔排序、冒泡排序与简单选择排序

一.直接插入排序 稳定,时间复杂度:最好O(n).最差O(n^2).平均O(n^2),空间复杂度O(1) void InsertSort(int L[], int n) { int i, j,key; for (i = 1; i<n; i++) if(L[i] < L[i-1])//需要将L[i]插入到有序表L[0...i-1] { key = L[i]; for(j = i-1; j >= 0 && key < L[j]; j--)//后移 L[j+1] = L[

Java中的几种排序算法:冒泡排序,插入排序,二分法排序,简单排序,快速排序

冒泡排序: int[] hehe={4,7,2,5,6,9,0}; for(int i=0;i<hehe.length;i++){ for(int j=i+1;j<hehe.length;j++){ if(hehe[i]>hehe[j]){ int temp=hehe[i]; hehe[i]=hehe[j]; hehe[j]=temp; } } } 插入排序 int[] a={13,7,8,9,10,1,2,32}; int i,j,t,h; for (i=1;i<a.length

三种简单排序(之一)——(冒泡排序)

1.简介:     在学习技能的过程中,没有哪一种技术是最好的!在不同的情况下,不同的技术会有不同优势! 冒泡排序的基本思想是:每次比较两个相邻元素,如果它们的顺序错误就把它们交换位置: 下面通过图简单来看看“冒泡排序” 所谓冒泡排序就是这样,小的数往上浮,大的数往下沉! 2.冒泡排序: 代码: 1 static void Main(string[] args) 2 { 3 int[] arr = { 1, 5, 2, 7, 3 }; 4 foreach (int item in bubble(