bubble_sort
2017-04-08 11:19
295 查看
C++代码如下:
#include <stdio.h> int main(){ int n; int buf[100]; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++){ scanf("%d",&buf[i]); } for(int i=0;i<n-1;i++){ for(int j=0;j<n-1-i;j++){ if(buf[j]>buf[j+1]){ int tmp=buf[j]; buf[j]=buf[j+1]; buf[j+1]=tmp; } } } for(int i=0;i<n;i++){ printf("%d ",buf[i]); } printf("\n"); } return 0; }
冒泡排序算法
思路:将相邻两个数比较,将小的调到前头;即每一趟比较并调整之后,最大的会放到最后。
eg:6个数,需进行5趟比较;
n个数,则需要进行n-1趟比较;
第j需进行n-j次两两比较;
c程序代码如下:
#include <stdio.h> void main(){ int n,i,j; int buf[100]; while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++){ scanf("%d",&buf[i]); } for(i=0;i<n-1;i++){ for(j=0;j<n-1-i;j++){ if(buf[j]>buf[j+1]){ int tmp=buf[j]; buf[j]=buf[j+1]; buf[j+1]=tmp; } } } for(i=0;i<n;i++){ printf("%d ",buf[i]); } printf("\n"); } //return 0; }
时间复杂度的估计:
1s的运行时间:即算法的时间复杂度不能超过百万级别,即不能超过一千万。
冒泡排序的时间复杂度为:O(n^2),若题中给的n的范围为(1<=n<=100),这样我们估计出n^2的数量级仅在万级别。
冒泡排序的空间复杂度为O(n),即大致需要100*32bit<32M
sort的使用:
升序排序代码如下:
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
int n;
int buf[1000];
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&buf[i]);
}
sort(buf,buf+n);
for(int i=0;i<n;i++){
printf("%d ",buf[i]);
}
printf("\n");
}
return 0;
}
降序排序代码如下:
#include<stdio.h> #include<algorithm> using namespace std; bool cmp(int x,int y){//定义排序规则 return x>y; } int main(){ int n; int buf[100]; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++){ scanf("%d",&buf[i]); } sort(buf,buf+n,cmp);//使用该重载形式,我们表明将要使用自己定义的排列规则;sort(排序起始地址,排序结束地址,比较函数) for(int i=0;i<n;i++){ printf("%d ",buf[i]); } printf("\n"); } return 0; }
相关文章推荐
- Bubble_Sort
- 冒泡排序(Bubble_Sort)
- Bubble Sort Graph
- Data Structures-1 bubble_sort中的change作用举例
- 一天一排序之“冒泡排序(Bubble_sort)”
- Aizu ALDS1_2_A Bubble Sort(冒泡排序)
- 数据结构基础(1) --Swap & Bubble-Sort & Select-Sort
- 冒泡排序(bubble_sort)详解
- bubble_sort
- 字符串排序... toBubbleSort...strcmp(arr[j], arr[j + 1]) > 0...c语言 条件 -1 也能打印 囧
- Bubble_sort
- Java BubbleSort(冒泡排序)
- Select Sort & Bubble Sort
- 排序算法之冒泡排序<Bubble_Sort>及其C语言代码实现
- 数据结构基础(1) --Swap & Bubble-Sort & Select-Sort
- Recursive Bubble Sort(递归冒泡排序)
- Use recursive procedure to perform a bubble sort on a list of data
- 自己动手写算法.Sort.Bubble
- Double Bubble Sort(双向的冒泡排序)
- bubble sort in linked list....(java version)