八大排序算法(1)_冒泡排序和选择排序
2013-08-29 11:06
239 查看
/************************************************************************/ /* @author lynnbest 排序复习:升序 1.冒泡 两个相邻依次比较交换,将最大的沉到最右边 两层寻坏,第一层控制比较次数,第二层控制遍历比较顺序 2.选择 从所有的位挑出最小的赋值给第0位 然后从剩下的当中,在选择最小的赋给第1个 依次 也就是找位置 在交换 */ /************************************************************************/ #include <stdio.h> void printfarray(int *a,int len); void ascendsort_bubble(int *a,int n); void acsendsort_choice(int *a,int n); int main() { int a[]={6,8,4,3,2,1}; int len=sizeof(a)/sizeof(a[0]); printf("排序前:\n"); printfarray(a,len); ascendsort_bubble(a,len); // acsendsort_choice(a,len); printf("排序后:\n"); printfarray(a,len); return 0; } void printfarray(int *a,int len) { for(int i=0;i<len;i++) printf("%3d",a[i]); printf("\n"); } void ascendsort_bubble(int *a,int n) //冒泡升序 { int temp; for(int i=0;i<n-1;i++) for(int j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } void acsendsort_choice(int *a,int n) //选择升序 { int min,temp; for(int i=0;i<n;i++) { min=i; for(int j=i;j<n;j++) //这个循环就是在找最小的 位置 if(a[min]>a[j]) min=j; temp=a[min]; //将找到的最小和对应位置 交换 a[min]=a[i]; a[i]=temp; } }
相关文章推荐
- 黑马程序员——冒泡排序和选择排序——熟悉又陌生的排序方法
- 选择排序、插入排序、冒泡排序的编程
- 冒泡排序和选择排序二分查找代码实现
- 冒泡排序和插入排序,选择排序
- 冒泡排序,选择排序,插入排序,快排
- 三种基本排序-冒泡排序、直接插入排序、选择排序
- 排序算法之“选择排序-冒泡排序-插入排序”
- 冒泡排序、选择排序
- 数组排序_冒泡排序、选择排序、快速排序
- 选择排序,冒泡排序,直接插入排序
- 选择排序 冒泡排序 递归
- 经典算法:二分查找、插入排序、选择排序、冒泡排序
- ArraySort--冒泡排序、选择排序、插入排序工具类demo
- 选择排序与冒泡排序
- C/C++ 排序之一(冒泡排序、选择排序、交换排序)
- 冒泡排序与选择排序
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- 【冒泡排序、选择排序、插入排序总结】
- 基本排序算法(冒泡排序,选择排序,插入排序)后续[时间测试]
- 八大排序算法总结之一(冒泡排序,快速排序,直接插入排序,希尔排序)