五种排序算法,冒泡排序 选择排序 插入排序 希尔排序 快速排序

目录

前言

1.冒泡排序(Bubble Sort)

        概念

        代码实现

        注意

2.选择排序(Selection Sort)

        概念

        代码实现

        注意事项

3.插入排序(Insertion Sort)

        概念

         代码实现

        注意

4.希尔排序(Shell Sort)

        概念

        代码实现

        注意

5.快速排序(Quick Sort)

        概念

         代码实现

        注意


前言

        我们的生活中时常会遇到大量的数据,他们或许有序或许杂乱无章,那么如何让一些杂乱无章的数据变得有序呢?本篇文章会让了解几种基础的排序算法。


1.冒泡排序(Bubble Sort)

        概念

        ”冒泡排序“ 顾名思义,他像小鱼吐泡泡一样,每次吐出一个泡泡,后面的泡泡跟在前面的泡泡的后面,变成一连串的泡泡。

图解 

那么代码如何实现呢?

        代码实现

void Bubble_Sort(int a[]){

    //外层循环用来控制排序的次数
	for(int i=0 ; i<10-1 ; i++){

        //内层循环控制比较的内容
		for(int j=0 ; j<10-i-1 ; j++){

            //比较当前位置和后一个位置的数据的大小
			if(a[j] < a[j+1]){

                //交换两个位置的数据
				int t = a[j];
				a[j] = a[j+1];
			    a[j+1] = t;

			}//if
		}//for j
	}//for i
    
    //输出排序后的数据
	for(int i=0 ; i<10 ; i++){
		printf("%d  ",a[i]);
	}
}
//主函数
int main(){

    //数组的定义
	int a[10];
    
    //循环对数组录入数据
	for(int i=0;i<10;i++){
		scanf("%d",&a[i]);
	}
    
    //调用冒泡排序函数
    Bubble_Sort(a);
return 0;
}

        注意

  • 冒泡排序是一个稳定的排序方法
  •  每次循环都会找出最小或者最大的数字放到最后一个位置

2.选择排序(Selection Sort)

        概念

        “选择排序” 每次选择一个最大或者最小的数据,把他放在一个合适的位置。

图解

        代码实现

void Selection_Sort(int a[]){
	
	//外循环控制已排序的最后一个数据
	for(int i=0 ; i<10 ; i++){
        
        //记录其下标
		int min=i;

        //内循环控制未排序部分
		for(int j=i+1 ; j<10 ; j++){
            
            //未排序的数据和已排序的最后一个元素比较
			if(a[j] < a[min]){
                
				min = j;    //比已排序数据更小记录其下标

			}//if
		}//for j
        
        //min 如果被改变,那就代表有更小的数据
		if(min != i){
            
            //交换两个位置的数据
			int t = 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值