冒泡,插入,选择排序

Posted 52dxer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡,插入,选择排序相关的知识,希望对你有一定的参考价值。

/*
 * @Issue: 数组排序:从键盘读入多个整数,要求对这些整数实现从小到大或从大到小排序,
           屏幕上输出排序结果。冒泡、选择、插入三种排序算法都可以
 * @Author: 一届书生
 * @LastEditTime: 2020-02-21 13:35:46
 */
#include<iostream>
#include<stdio.h>
using namespace std;

#define num 10
int a[100];//待排序数组

// 冒泡排序 从小到大
void bubble(int *p,int len){
    int t=0;
    for(int i=0;i<len-1;i++){
        for(int j=i+1;j<len;j++){
            if(*(p+i)>*(p+j)){  //若想从大到小 改成<即可
                swap(*(p+i),*(p+j));
            }
        }
    }
}

// 插入排序
void insert(int *p , int len){
    int i,j,key;
    for(i=1;i<len;i++){     //从第二个数开始判断
        key=*(p+i);         //取一下第二个数
        j=i-1;              //遍历第i个数之前的数
        while(j>=0&&*(p+j)>key){    
            *(p+j+1)=*(p+j);
            j--;
        }
        *(p+j+1)=key;
    }
}

// 选择排序
void select(int *p , int len){
int minindex, temp;
	for(int i = 0; i<len-1;i++)
	{
	    minindex = i;           
	    for(int j = i+1; j<len; j++)
		{
		    if(*(p+j)<*(p+minindex))
				minindex = j;      //遍历余下的数组 找一个最小的,与第i个位置的数交换
		}
        swap(*(p+i),*(p+minindex));
	}
}

int main(){
    for(int i=0;i<num;i++){
        cin>>a[i];
    }
    // bubble(a,num);       //冒泡排序
    // insert(a,num);       //插入排序
    select(a,num);
    for(int i=0;i<num;i++){
        cout<<a[i]<<" ";
    }

    return 0;
}

  

以上是关于冒泡,插入,选择排序的主要内容,如果未能解决你的问题,请参考以下文章

三大基础排序算法(冒泡排序,选择排序,插入排序)

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

排序算法学习(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序)