基本的排序算法之—— 冒泡排序(稳定)(对于固定的内存空间数组或顺序表,对于单链表也可以)
来源:互联网 发布:python sklearn教程 编辑:程序博客网 时间:2024/06/17 19:11
/********************************************************************** * Copyright (c)2015,WK Studios* Filename: * Compiler: GCC,VS,VC6.0 win32 * Author:WK * Time: 2015 4 18************************************************************************/ #include<stdio.h>#include<assert.h>void bubbleSort1(int *a, int len){for(int i=0;i<len;i++){for(int j=0;j<len-1-i;j++){if(a[j]>a[j+1]){int temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}//优化代码void bubbleSort2(int *arrary, int len){assert(arrary != NULL);int i = 0;bool tag = true;while (tag)//减少一个循环{tag = false;for (int j = 0; j < len-1-i; j++){if (arrary[j] > arrary[j+1]){int tmp = arrary[j+1];arrary[j+1] = arrary[j];arrary[j] = tmp; tag = true;}}++i;//妙处在于利用一个循环的控制条件控制了i和j的增长,最坏的情况是i=len-1,也就是当i=len-1时候进入内循环j 会因为判断不会执行循环,之后退出循环i++,此时i=len 此时while循环也就退出来了}}int main(){int a[]={9,8,7};//由小到大排列 bubbleSort2(a, sizeof(a)/sizeof(a[0]));//bubbleSort2(a, sizeof(a)/sizeof(a[0]));for(int i=0;i<8;i++)printf("%d\n",a[i]);return 0;}
1 0
- 基本的排序算法之—— 冒泡排序(稳定)(对于固定的内存空间数组或顺序表,对于单链表也可以)
- 基本的排序算法之——插入排序法(稳定)(对于固定的空间数组或者顺序表)
- 基本的排序算法之——选择排序法(对于固定的空间数组或者顺序表)
- 个人对于冒泡排序和选择排序的理解
- 对于栈的排序
- 稳定的排序算法
- 排序算法的稳定
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- 常见的排序算法—冒泡排序
- java 对于集合的排序
- 对于排序的深刻理解
- 排序算法之冒泡排序的基本介绍和数组越界,以及交换2个变量的3种方法
- 基本算法之冒泡排序
- 对于js数组排序的问题 arr.sort()
- 数组排序的两种算法--冒泡排序/选择排序
- 练习1:冒泡排序 , 既可以学算法,又可以熟悉数组,循环的用法.
- 数组基本的排序算法
- Let the Balloon Rise(1004)
- 浮点型在内存中的存在方式
- 6174问题
- (转)标记-清除算法
- 1.[python cookbook]简单EchoServer
- 基本的排序算法之—— 冒泡排序(稳定)(对于固定的内存空间数组或顺序表,对于单链表也可以)
- centos 6.5 mongodb3.11安装记
- POJ1486 Sorting Slides 二分图
- android 可拖动控件
- 深入理解HTTP Session
- NOSQL(四)放宽一致性约束
- 编程算法之递归阶乘(数制转换)
- 数学结论
- Floyd-Warshall算法求任意两点间最短路径