day-8 三种排序法(选择排序、冒泡排序、插入排序)

一、准备知识

数组逆序 //数组中的元素值 发生变化 
           i j
   0 1 2 3 4 5 6 7 8 9  //下标 
   1 2 3 4 5 6 7 8 9 10 //数值 
-->逆序 
   0 1 2 3 4 5 6 7 8 9  //下标 
  10 9 8 7 6 5 4 3 2 1  //数值 
  
  关系:
     i <=> 数组长度 - 1 - i 
     换到什么时候停! 
     
     
 实现两个数交换:
   
   a = 10;
   b = 20;
   
   c = a;
   a = b;
   b = c; //交换方法 

----------------------------
排 序:  
   
   升序  1 2 3 4 5 6 
   降序  6 5 4 3 2 1 

二、选择排序:
  思想:
 给合适位置,(选择)合适的数放

for (i = 0; i < n-1; ++i)  //  控制位置 (a[0]-----a[n - 2]),前n-1个元素排序结束,第n个元素自然确定
{
    for (j = i + 1; j < n; ++j)  //对当前位置的a[0]  (0,1,2,3,...n)同其自己后面的所有元素比较,每次将小的结果放在低位  i  
    {
        if (a[i] > a[j])
        {
            交换
        }
    }
}

冒泡:
for (i = 1; i < n; ++i)    //控制趟数
{
    for (j = 0; j < n-i; ++j)  //从a[ j ]  开始比较其后面的 a[j + 1].... 到a[n - i -1],将最大的放高位
    {
        if (a[j] > a[j+1])
        {
            交换
        }
    }
}

三、插入排序

原数列a[  ]

 新数列b [   ]

首先将a[ 0 ]放入b[  0  ]中

然后a[1 ]通过比较a[0],如果a[0]大则,a[0]放高位,a[ 1]放低位,依次类推

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值