0
点赞
收藏
分享

微信扫一扫

将数组由乱序排为升序

冒泡排序法

思路:从第一位开始,逐个与下一位比较,大于下一位则交换,小于等于下一位则他们的相对位置不用改变,直到数组中的最后一位确定为该数组的最大值。

将数组由乱序排为升序_数组

同理,再确定倒数第二位,倒数第三位,直到确定了正数第二位为止,升序排列成功。

代码实现:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void bubble_sort(int* arr,int len) {
	while (len>1) {  //10个数需要确定后9个位置,len个数需要确定后len-1个位置

		for (int i = 0;i < len-1; i++) {   //第一个数比较9次(len-1次),第二个数比较8次......

			if (arr[i] > arr[i + 1]) {    //前比后大则换位
				int temp = arr[i + 1];
				arr[i + 1] = arr[i];
				arr[i] = temp;
			}
			else   //前比后小,或二者相等,不用执行任何操作,直接i++开始下次比较
				;
		}
		len--;
	}
}
int main() {
	int arr[10] = { 7,3,4,6,8,9,1,5,2,10 };
	int len = sizeof(arr) / sizeof(arr[0]);
	bubble_sort(arr,len);
	for (int i = 0;i < len;i++)
		printf("%d ", arr[i]);

	return 0;
}


举报

相关推荐

0 条评论