基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。算法实现:(HDU 1040 亲测 AC)#include<iostream>
usingnamespace std;
constint N =1005;
void BubbleSort(int a[],int );
void print(int a[],int num);
void swap(int &a,int &b);int main()
{int s[N]...
基本思想 假如按照从小到大的顺序排序,对待排序数组进行遍历,如果当前值大于其后一个值则进行交换,不断的进行遍历,直到没有交换动作的发生。冒泡排序的最好时间复杂度为O(n),最坏的时间复杂度为O(n2),所以冒泡排序的平均时间复杂度为O(n2),另外冒泡排序不会改变相同元素的前后顺序,故其是一种稳定的排序算法。实现代码#include<iostream>
usingnamespace std;int main()
{int MyData[10] = { 7,3,12,46,32,64,13,...
题目要求编写一个C语言程序,实现基本的冒泡排序算法.算法冒泡排序,用一句话来总结:一组数中,相邻的两个数进行比较、交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序要想对N个数字进行排序,循环N次即可.如果真的不理解冒泡排序算法,请点击:冒泡排序_360百科核心代码//方式一:从头向尾遍历,将最大数(相对)沉入尾部(相对)
void BubbleSort1(int *arr,int sz){int i = 0;int j = 0;assert(arr);for(i=0;i<sz-1;i++){for(j=0;j<s...
冒泡排序算法的时间复杂度是什么?时间复杂度是O(n^2)。 1 #include "stdafx.h" 2 #include <iostream>3usingnamespace std;4void Swap(int &a, int &b)5{6int temp = a;7 a = b;8 b = temp;9}
1011void Bubble1(int *array, int length)
12{
13for (int i=length-1;i>0;--i) //首先是要比较多少趟,每一趟冒泡可以确定一个值。最后一趟只剩一个就不用比较了(所以是i>0而不是i>=0)。14 {
15for (int j=0;j<i;++j)
16 ...
/// <summary> /// 冒泡法排序 /// </summary> /// <param name="shuzu"></param> private static void MySort(int[] shuzu) { //比较多少轮 for (int i = 0; i < shuzu.Length - 1; i++) { //每一轮比较多少次 for(int j=shuzu.Length-1;j>i;j--) { if(shuzu[j]>shuzu[j-1]) ...
基本思想冒泡排序的基本思想是:
通过对待排序的序列从前向后依次比较相邻元素的值,如果发现逆序则交换。
逆序的含义:如果想把序列从小到大排序,那么两个数中前面的比后面的大就是逆序。
若需求是将序列从小到大排序,那么每一趟比较都会把值较大的逐渐从前面移动到后面。
就像水底的泡泡一样:
(如下图,图片来源于网络)例子给定一个数组如下:
[ 5 , 8 , -2 , 20 -6 ]
定义两个变量 i 和 j,初始状态 i 存第一个元素的索引,...
冒泡排序(Bubble Sort)冒泡排序是一种交换排序基本思想:两两比较相邻的的元素,如果反须则交换,直到没有反序的记录为止代码实现: import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class BubbleSort {public static void main(String[] args) {int arr[] = {3,9,-1,10,-2};System.out.println("排序前:");System.out.println(Arrays.toString(arr));bubbleSort(arr);System.out.prin...
1、变量互换a = 123
b = 456temp = a
a = b
b = temp python比较简单的变量互换:a = 123
b = 456
a,b = b,a
print(a,b) 2、将列表中最大的值放置到最后#!usr/bin/env python
# -*- coding:utf-8 -*-
li = [11,44,33,66,22]
for i in range(len(li)-1):if li[i] > li[i+1]:temp = li[i]li[i] = li[i+1]li[i+1] = tempprint(li) 3、循环嵌套冒泡排序法#!usr/bin/env python
# -*- coding:utf-8 -*-
li = [11,44,33,66,77,99,44]
fo...
冒泡排序算法C++#include <iostream>
using namespace std;
template<typename T>
//整数或浮点数皆可使用
void bubble_sort(T arr[], int len)
{int i, j; T temp;for (i = 0; i < len - 1; i++)for (j = 0; j < len - 1 - i; j++)if (arr[j] > arr[j + 1]){temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}
}
int main()
{int arr[] = { 61, 17, 29, 22, 34, 60, 72, 21, 50, 1, 62 };int len = (int) sizeof(arr) / siz...
1 #include <iostream>2usingnamespace std;3int BubbleSort(int A[],int n);4int OutPut(int A[],int n);5int main()6{7int A[]={5,1,3,2,4};8 BubbleSort(A,5);9 OutPut(A,5);
10return0;
11}
1213int BubbleSort(int A[],int n)
14{
15for(int i=0;i<n-1;i++)
16 {
17for(int j=i+1;j<n;j++)
18 {
19if(A[i]>A[j])
20 {
21int temp=A[i];
22 A[i]=A[j];
23 A[j]=...
- 排序原理比较相邻的元素。如果第一个比第二个,就交换他们两个;对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数;循环往复,针对所有的元素重复以上的步骤,除了最后一个;持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较- 算法分析若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数 和记录移动次数 均达到最小值: 。所以,...
一、C 程序实现/*******************************************************
* Description: 冒泡排序算法
* Author: shujuxiong
* Version: 1.0
* Time: 2018-06-25
*******************************************************/#include <stdio.h>//函数:打印数组
void PrintDataArray(int a[], int n)
{for(int i=0; i<n; i++)printf("%d ",a[i]);printf("\n");
}//冒泡排序
void BubbleSort(int a[], int n)
{//每次将未排序部分...
算法思想:一共进行 array.size-1趟排序,每一趟排序,都将左右两个数进行比较大小,并且交换位置,这样的效果是:每一趟排序中,能找到最大的值冒泡到该趟排序的最后面,这样的话,第一趟排序,最后一个数是最大的,第二趟排序,倒数第二个数就是第二大的,最后一趟排序后 (因为最后一趟只有一个数,不用比较,所以比较次数是 array.size-1 趟),将得到有序数组博客地址:http://blog.csdn.net/mkrcpp/article/details/39178213im...
思路:
就是比较相邻的两项的大小,然后交换位置var arr = [1,3,5,62,6,4,5,63,7];
function bubbleSort(arr) {if (arr.length <= 1) return arr;for (var i = 0; i < arr.length; i ++) {for (var j = 0; j < arr.length - i - 1; j ++) {if (arr[j] > arr[j + 1]) {var temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}return arr;
}
var res = bubbleSort(arr);
console.log(arr); //[1, 3, 4, 5, 5, 6, 7, 62, 63]
原...
冒泡算法冒泡排序:从序列的一端开始往另一端冒泡,依次比较相邻的两个数的大小。设数组长度为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...