0707排序算法
来源:互联网 发布:linux which命令 编辑:程序博客网 时间:2024/06/11 21:17
0707排序算法
#include <iostream>using namespace std;//冒泡排序:将序列划分为无序和有序区,不断通过交换较大元素至无序区尾完成排序void maopao(int *array,int N){ for (int i = 0; i < N-1 ; ++i) { for (int j = 0 ; j < N-1-i; ++j) { if (array[j] > array[j+1]) { array[j] += array[j+1]; array[j+1] = array[j]-array[j+1]; array[j]-=array[j+1]; } } } for (int i = 0; i < N; ++i) { cout<<array[i]<<" "; }}//选择排序:将序列划分为无序和有序区,寻找无序区中的最小值和无序区的首元素交换,有序区扩大一个,循环最终完成全部排序。 void select(int *array,int N){ for (int i = 0; i < N-1; ++i) { int index = i; for (int j = i + 1 ; j < N; ++j) { if (array[index] > array[j]) { index = j; } } if (index != i) { array[i] += array[index]; array[index] = array[i]-array[index]; array[i]-=array[index]; } } for (int i = 0; i < N; ++i) { cout<<"array["<<i<<"] = "<<array[i]<<endl; }}//插入排序:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中区,最终将所有无序区元素都移动到有序区完成排序。void insert(int *a,int n){ int i, j; int temp;//存放待插入的数 for (i = 1; i < n; i++) { j = i; if (a[j] < a[j-1]) { temp = a[i]; while (j > 0 && temp < a[j-1]) { a[j] = a[j-1]; j--; } a[j] = temp; } } for (i = 0; i < n; i++) { printf("%d\n", a[i]); }}void swap(int *a, int *b){ int temp; temp = *a; *a = *b; *b = temp;}//快速排序:不断寻找一个序列的中点,然后对中点左右的序列递归的进行排序,直到全部序列排序完成。void quick(int* array,int first,int last){ if (first>=last) { return; } int low = first; int high = last; int key = array[low]; while (low < high) { while (low < high&&array[high]>=key) --high; array[low] = array[high]; while (low < high&&array[low]<=key) ++low; array[high] = array[low]; } array[low] = key; quick(array, first, low-1); quick(array, low+1, last);}int main(int argc, const char * argv[]) { const int N = 9; int array[N] = {15,46,81,-1,34,12,85,38,28};// maopao(array,N);// cout<<endl;// select(array, N);// insert(array,N); quick(array, 0, 9); for (int i = 0; i < N; ++i) { cout<<"array["<<i<<"] = "<<array[i]<<endl; } return 0;}
0 0
- 0707排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 随感
- Gcc编译选项分析
- Acitivity加载模式说起
- mac无法安装wxPython
- 记录一个:Create, Update, Delete and Copy Item Activity in SharePoint 2010 Workflow
- 0707排序算法
- QT C++实现多线程通信--示例代码
- 开源解析器--ANTLR
- Js运动动画系列8--链式动画
- java线程,线程1循环10次,线程2循环10次,再到线程1 循环10次,再到线程2循环10次,如此反复,循环10次
- RTMP直播应用与延时分析
- C++异常处理
- 为什么要有指针
- 数据压缩