数据结构几种交换排序
2013-10-29 15:15
330 查看
#include <iostream> using namespace std; void bubble_sort(int a[], int len) { int i, j; int temp, flag = 1; for(i=0; i<len&&flag; i++) { flag = 0; for(j=0; j<len; j++) { if(a[i] < a[j]) { flag = 1; temp = a[i]; a[i] = a[j]; a[j] = temp; } } } cout<<"冒泡排序: "; for(i=0; i<len; i++) cout<<a[i]<<" "; cout<<endl; } void quick_sort(int a[], int left, int right) { int temp; int i = left; int j = right; if(left < right) { temp = a[left]; while(i != j) { while(i<j&&a[j]>=temp) j--; if(i < j) { a[i] = a[j]; i++; } while(i<j&&a[i]<=temp) i++; if(i < j) { a[j] = a[i]; j--; } } a[i] = temp; // quick_sort(a, left, i-1); quick_sort(a, i+1, right); } cout<<"快速排序: "; for(i=0; i<9; i++) cout<<a[i]<<" "; cout<<endl; } void select_sort(int a[], int len) { int i, j, k; int temp; for(i=0; i<len; i++) { k = i; for(j=i+1; j<len; j++) if(a[k] > a[j]) k = j; if(i != k) { temp = a[i]; a[i] = a[k]; a[k] = temp; } } cout<<"简单选择排序: "; for(i=0; i<9; i++) cout<<a[i]<<" "; cout<<endl; } int main(void) { int a[] = {2,5,8,6,9,1,4,3,0}; int len = sizeof(a)/sizeof(int); //冒泡排序 // bubble_sort(a, len); //快速排序 // quick_sort(a, 0, len-1); //选择排序 select_sort(a, len); return 0; }
相关文章推荐
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构揭秘一
- Java数据结构之简单链表的定义与实现方法示例
- qqwry.dat的数据结构图文解释第1/2页
- Java数据结构之双端链表原理与实现方法
- Huffman 编码压缩算法
- C 的反思穷究链表
- 数据结构&算法学习
- 第二话:数据结构的历史与来由
- 第一话:你的数据结构怎么学的?
- 鸟瞰数据结构的知识点全貌
- 数据结构的基本概念和术语
- 开发语言、开发工具、数据结构和算法的关系
- 排序算法总结
- CC数据结构学习.0
- PHP常用函数
- [转]可视化的数据结构和算法
- PHP数据结构预热:PHP的迭代器
- C语言实现各类排序算法
- vector list两种不同的容器