标签:
在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生改变,则称这种排序方法是不稳定的。即所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,则说这种排序算法是稳定的,反之,就是不稳定的。
、
一、冒泡排序
冒泡排序(BubbleSort)的基本概念是:
个人理解就是将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。
代码实现如下:
1 #include"iostream" 2 void insert(int *p,int num) 3 { 4 //大到小排序 5 int i,j,temp; 6 for(i=0;i<num;i++) 7 for(j=i;j<num;j++) 8 if(p[i]<p[j+1]) 9 { 10 temp=p[i]; 11 p[i]=p[j+1]; 12 p[j+1]=temp; 13 } 14 for(i=0;i<num;i++) 15 { 16 std::cout<<"p["<<i+1<<"] "<<p[i]<<" "; 17 } 18 19 } 20 int main() 21 { 22 23 int a[6]={3,9,5,19,1,17}; 24 insert(a,6); 25 system("pause"); 26 return 0; 27 }
标签:
原文地址:http://www.cnblogs.com/-210843013/p/5585499.html