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的值交换,下一次从又下一个数开始,恰好与上面的冒泡不同,冒泡是将得到的值放到最后了。
时间: 2024-10-18 05:06:44