首页 > 代码库 > 选择和冒泡排序
选择和冒泡排序
1 #include <stdio.h> 2 3 int main() 4 { 5 int arr[5] = {4, 7, 9, 2, 6}; 6 int brr[5] = {7, 8, 4, 2, 1}; 7 /*冒泡排序*/ 8 int i, j, tmp=0, swap=0; 9 10 for(i=0; i<5; i++) 11 for(j=0; j<4-i; j++){ 12 if(arr[j] < arr[j+1]){ 13 tmp = arr[j]; 14 arr[j] = arr[j+1]; 15 arr[j+1] = tmp; 16 } 17 } 18 /* 选择排序 */ 19 for(i=0; i<5; i++) 20 printf("%d \n", arr[i]); 21 22 for(i=0; i<5; i++){ 23 tmp = i; 24 for(j=i; j<5; j++){ 25 if(brr[tmp] < brr[j]) 26 tmp = j; 27 } 28 swap = brr[i]; 29 brr[i] = brr[tmp]; 30 brr[tmp] = swap; 31 } 32 for(i=0; i<5; i++) 33 printf("%d \n", brr[i]); 34 }
- 冒泡排序(大到小):比如有五个数,将第一个与第二个比较,再将第二个与第三个比较。。如果后者比前者大值是要交换的,自然得到最后一个最小,请注意 j+1是已经比较到最后一个的,把i=0带进去一试就知道;每一论都是从最前面开始比较的,把最小的推到最后,得到最小值后下一轮将不再比较。
- 选择排序(大到小):每一次把最大的值放到最前面,tmp用来存放最大值的下标,最后再与当前下标i的值交换,下一次从又下一个数开始,恰好与上面的冒泡不同,冒泡是将得到的值放到最后了。
选择和冒泡排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。