经典算法之冒泡排序

咱们呢先定义一个数组

int[] list = {5,8,3,4,6,7};

首先冒泡排序的的要求是这个数组中的从大到小排列,或者从小到大排列。

for (int i = 0; i < list.Length; i++)
{
  for (int j = i+1; j < list.Length; j++)
  {
    if (list[j] > list[i])
    {

      int temp = list[j];
      list[j] = list[i];
      list[i] = temp;     
    }

  }
}

这个是冒泡排序的精髓

时间: 2024-11-02 23:38:04

经典算法之冒泡排序的相关文章

Java中的经典算法之冒泡排序(Bubble Sort)

Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复第一趟步骤,直至全部排序完成. 举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 第一趟排序: 第一次排序:6和3比较,6大于3,交换位置:  

经典算法学习——冒泡排序

冒泡排序是我们学习的第一种排序算法.应该也算是最简单.最经常使用的排序算法了. 无论怎么说.学会它是必定的. 今天我们就用C语言来实现该算法. 演示样例代码已经上传至:https://github.com/chenyufeng1991/BubbleSort 算法描写叙述例如以下: (1)比較相邻的前后两个数据.假设前面数据大于后面的数据,就将两个数据交换: (2)这样对数组的第0个数据到N-1个数据进行一次遍历后.最大的一个数据就到了最后一个位置,也就是下标为N-1的位置(沉到了水底). (3)

分享知识-快乐自己:Java中的经典算法之冒泡排序(Bubble Sort)

原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复第一趟步骤,直至全部排序完成. 第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较: 第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比

【经典算法】冒泡排序

冒泡算法 冒泡排序:从序列的一端开始往另一端冒泡,依次比较相邻的两个数的大小. 设数组长度为N. 1.每轮比较相邻的前后两个数据,如果前面数据大于或者小于后面的数据,就将二个数据交换. 2.这样每轮对数组的第0个数据到N-1个数据进行一次遍历后,最大或者最小的一个数据就到数组第N-1个位置. 3.   第一轮比较到下标为N-1的数据(最后一个),以后每次比较都-1. #include <stdio.h> int main () { int list[10] = {5,23,86,21,43,6

java经典算法之冒泡排序

1 /** 2 *冒泡排序(当前值与下一个值依次比较) 3 */ 4 public class BubbleSort 5 { 6 public static void main(String[] args) 7 { 8 sort(); 9 } 10 public static void sort(){ 11 12 int[] arr = new int[]{80,15,31,20,59}; 13 14 for(int i=1;i<arr.length;i++){ 15 for(int j=0;j

经典算法学习——链表实现冒泡排序

我在之前一篇博客<经典算法学习--冒泡排序>中简单实现了使用数组进行冒泡排序.这篇博客我们将来实现使用链表如何排序,其实整体的思路是一样的.示例代码上传至: https://github.com/chenyufeng1991/BubbleSortLinkedList . 算法描述如下: (1)比较相邻的前后两个数据,如果前面数据大于后面的数据,就将两个数据交换: (2)这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就到了最后一个位置,也就是下标为N-1的位置(沉到了水底).

经典算法学习——非循环双向链表实现冒泡排序(不带头结点)

我在前面两篇博客<经典算法学习--单链表(不带头结点)实现冒泡排序><经典算法学习--单链表实现冒泡排序(带头结点)>中详细描述了分别使用带头结点和不带头结点的单链表实现了冒泡排序,让我们对单链表和冒泡排序有了理性的认识.今天我们将会来使用不带头结点的非循环双向链表来实现冒泡排序,在处理过程中,这种冒泡比前面两种更为简单高效.代码上传至 https://github.com/chenyufeng1991/DoubleLinkedList_BubbleSort . 核心代码如下: /

白话经典算法系列之一 冒泡排序的三种实现

分类: 白话经典算法系列 2011-08-06 19:20 93923人阅读 评论(72) 收藏 举报 算法优化 冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N. 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换. 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置. 3.N=N-1,如果N不为0就重复前面二步,否则排序完成. 按照定义很容易写出代码: [cpp] view plaincopy //冒泡

java 冒泡排序 经典算法题

//        冒泡排序:经典算法题.//        有一组数字 2,10,8,20,11,把这组数按照从大到小的顺序排列出来.20,11,10,8,2//        2,10,8,20,11 //        找出最大的数,放到第一位(1,2,3,4,5)//        20,10,8,2,11 //        从剩下的4个数中,找最大的(2,3,4,5)//        20,11,8,2,10 //        从剩下的3个数中,找最大的(3,4,5)//