冒泡排序:第一趟在序列(A[0] -- A[n-1])中从前往后进行两个相邻元素的比较,如后者较小,进行交换,比较n-1次,第一趟排序结束,最大元素被交换到A[n-1]中,即沉底,下一趟排序只需在序列(A[0] -- A[n-2])中进行。若在某一趟排序中未交换元素,则说明子序列已经有序,则不再进行下一趟的排序。该方法最多进行n-1趟。
冒泡排序偏爱基本有序的序列,算法的执行时间与元素的初始排列有关。复杂度为O(n^2 )。
简单实现:
int main()
{
int A[7] = {48,36,68,72,12,48,02};
int i,last,t,j,n = 7;
for(i = n-1 ; i > 0 ; ){
last = 0;
for(j = 0;j < i;j++){
if( A[j] > A[j+1]){
t = A[j+1];
A[j+1] = A[j];
A[j] = t;
last = j;
}
}
i = last;
}
return 0;
}
分享到:
相关推荐
最快的排序算法 C语言最简单的排序算法冒泡排序并返回排序前索引序号,排序算法数据结构
冒泡排序是一种简单且常见的排序算法,它重复地遍历待排序的元素,并依次比较相邻的两个元素,如果它们的顺序不正确则交换它们,直到整个序列排序完成。以下是对C语言冒泡排序的描述,不包含具体的代码实现: 基本...
本文介绍了C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序 冒泡排序、选择排序、插入排序和希尔排序
C#四种排序算法 冒泡排序 插入排序 选择排序 希尔排序 希尔排序是将组分段,进行插入排序.
python 冒泡排序算法 Python 冒泡排序算法 冒泡排序算法是一种简单的排序算法,它的基本思想是通过不断比较相邻的元素,将较大的元素向后移动,较小的元素向前移动,从而实现排序的目的。冒泡排序算法的时间复杂度为...
一个简单的算法效率对比,实验证明,快速排序的效率比冒泡的效率高出很多啊!
选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验分析的一致性 当面临巨大数据量的排序的时候,还是优先选择合并排序算法和快速排序算法。...
7大排序算法(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)实现源码
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
//冒泡排序 for(int i=0;i;i++){ for(int j=i+1;j;j++){//注意j的开始值是i+1,因为按照排序规则,比a[i]大的值都应该在它后面 if(a[i] > a[j]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; ...
六种内部排序算法比较:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。包含实验报告和源代码设计。
JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,包括算法的详细介绍,以及对几种算法的详细测试
Verilog/C++实现排序算法:Verilog/C++实现排序算法:冒泡排序、选择排序、并行全比较排序、串行全比较排序。
C++排序算法之冒泡排序源码
经典排序算法,有选择排序,冒泡排序,交换排序,谢尔排序,插入排序基数排序
# sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() #计数排序 # sort....
希尔排序,冒泡排序、快速排序递归排序,快速排序非递归排序,快速排序改进算法
排序算法: 1、插入排序 2、希尔排序 3、冒泡排序 4、快速排序 5、简单选择排序 6、堆排序
支持任意类型数据的排序,采用5中排序算法冒泡排序,选择,插入,快速,堆排序。
排序算法冒泡法教学设计.doc