三个简单的排序方法
2017-09-16 16:31
190 查看
回顾下之前学过的排序算法,三种简单排序
#include<cstdio>
#include<cstring>
#include<cmath>
int a[5] = {3,5,1,4,2};
void xzsort(int *a,int length){
for(int i= 0;i<length ;i++){
int min = a[i];
int flag = i;
int temp;
for(int j = i+1 ;j<length ;j++){
if(a[j]<min){
min = a[j];
flag = j ;
}
}
temp = a[i];
a[i] = min;
a[flag] = temp;
}
printf("选择排序时间复杂度O(n2),稳定排序");
}
void mpsort(int *a,int length){
for(int i=0 ;i<length-1; i++){
for(int j=0 ; j<length-1-i ; j++){
if(a[j]>a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("冒泡排序时间复杂度O(n2),稳定排序");
}
void crsort(int *a,int length){
for(int i=1 ;i<length ; i++){
int j = i;
while( j && a[j]<a[j-1]){
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
j--;
}
}
printf("插入排序时间复杂度O(n2),稳定排序");
}
void print(int *a,int length){
for(int i=0 ;i<length ;i++)
printf("%d,",a[i]);
}
int main(){
//选择排序
crsort(a,5);
print(a,5);
}
#include<cstdio>
#include<cstring>
#include<cmath>
int a[5] = {3,5,1,4,2};
void xzsort(int *a,int length){
for(int i= 0;i<length ;i++){
int min = a[i];
int flag = i;
int temp;
for(int j = i+1 ;j<length ;j++){
if(a[j]<min){
min = a[j];
flag = j ;
}
}
temp = a[i];
a[i] = min;
a[flag] = temp;
}
printf("选择排序时间复杂度O(n2),稳定排序");
}
void mpsort(int *a,int length){
for(int i=0 ;i<length-1; i++){
for(int j=0 ; j<length-1-i ; j++){
if(a[j]>a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("冒泡排序时间复杂度O(n2),稳定排序");
}
void crsort(int *a,int length){
for(int i=1 ;i<length ; i++){
int j = i;
while( j && a[j]<a[j-1]){
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
j--;
}
}
printf("插入排序时间复杂度O(n2),稳定排序");
}
void print(int *a,int length){
for(int i=0 ;i<length ;i++)
printf("%d,",a[i]);
}
int main(){
//选择排序
crsort(a,5);
print(a,5);
}
相关文章推荐
- 三个简单方法 让你的Win7系统加速运行
- 《面试》 几种经典的简单的排序方法(冒泡,选择,插入)python实现
- IOS几种简单有效的数组排序方法
- php组合排序简单实现方法
- Java List 实现排序的简单方法
- POJ 1002(不用排序的方法)(简单的字符串处理程序)
- POJ 1118(斜率,排序,找到最大的简单方法)
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- jquery拖拽排序简单实现方法(效果增强版)
- 面试中常常问的三种简单排序方法
- 快速排序Java实现--最简单的实现方法
- 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)
- 三个快速且简单的让你的大脑安静下来的方法
- 编程题-----三个顶点的坐标(x1,y1),(x2,y2),(x3,y3)什么方法求三角形的面积最简单
- 简单的指针三个数排序
- 用C++实现七种排序算法,可选择排序方法,简单易懂。
- IOS几种简单有效的数组排序方法
- Java简单实现几种常见排序方法
- Array数组(引用)排序两种简单方法