冒泡排序_____viod sort

本文通过实例分析冒泡排序和选择排序这两种基础排序算法的异同。作者以数组排序为例,详细解释了每一轮排序的过程,强调了它们在比较次数上的规律,并给出了相应的C语言实现代码。通过阅读,读者可以更好地理解这两种排序算法的基本思想。
摘要由CSDN通过智能技术生成

新手小白,不喜勿喷。

在算法中作为基础的冒泡排序和选择排序,两种方法在本质上个人感觉基本相似,我就谈谈自己的看完之后的想法。

我们首先先定义一组数组,元素分别是 3,1,2,8,9这5个,而这5个元素总共进行排序四轮(对5个元素最后一个是不用排的)首先我们的初步思路就是把这几轮排序定义成(i),也就是说i = 1的时候我们要把第一个元素放在最右边(我们定义从大到小最小的在右,最大的在左)因为第零位的元素要和其他元素进行比较,而和每一位数比较在电脑中也要计算,所以和每一位数比较时被叫为次在此我把次也定义一下,每一次 = j在第一轮的第一次为(9 和 8 比较,9比8大9换到8的位置上)

第一轮的第二次(9在和3比较,9在换到3的位置上)直到把9换到最左边也就是下标是4的地方

把9放好后,再找第二大的数也就是8,第二轮第一次(8和3比较,8放在在3的位置)依次类推直到把8放在下标为3的地方,后边的3,2,1也是如此,在这过程中当第一轮(也就是i = 1)时总共比较了4次(也就是j = 4)换算下来就是4+1=5 在第二轮时(也就是i = 2)时总共比较了3次(也就是j = 3)算下来也是2+3=5,第三轮也是3+2=5,第四轮也是4+1=5从中可以看出轮数+比较的次数都会得到5.

viod sort (int arr[], int len);//定义一个无属性的函数,在函数中定义两个形参分别代表(arr是要排序的数,len代表了有几个数)
int i;//轮数
int j;//次数
int tmp;//循环起来是用于存储数组元素

for (i = 0;i < len-1;i++)//首先先让轮数先循环起来(因为i等于0所以len-1)
{
  for(j = 0;j < len - 1 - i;j++)//因为j+i才等于len
 {
   if(arr[j] < arr[j+1])//将元素进行比较
  {
    tmp = arr[j];//将比较好的元素进行存储
    arr[j] = arr[j+1];
    arr[j+1] = tmp;
  }
 }
}
int main() 
 {
int i;
int len;
int arr[5] = {9, 8, 3, 2, 1};
len = sizeof(arr)/sizeof(arr[0];
sort(arr , len);//对函数进行调用

for(i = 0;i < len; i++){
printf("%d", arr[i]);
 }
putchar('\n');
system("pausen");
return 0 ;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值