码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡,插入,选择排序

时间:2020-02-21 14:57:06      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:pac   def   cpp   name   ++   交换   屏幕   最小   iss   

/*
 * @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;
}

  

冒泡,插入,选择排序

标签:pac   def   cpp   name   ++   交换   屏幕   最小   iss   

原文地址:https://www.cnblogs.com/52dxer/p/12341073.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!