#include <stdio.h>
int main(int argc, const char * argv[]) { int arr[10]={4,1,222,344,44,55,64,7,899,911}; //求数组的长度 int len = sizeof(arr)/sizeof(int); printf("--数组排序前--\n"); for (int i=0; i<len; i++) { printf("%d\t",arr);
}
printf("\n---排序过程进行中---\n");
//定义交换数组的媒介 int temp = 0; int indexNum = 0;
//定义用来存放最小数组元素 int min = 0; //设置标志,0标示没有找到应该交换的对象 int flag = 0;
for (int i=0; i<len-1; i++) { //第 i 次寻找最小数 // 假定每次都是i个数为最小数 min = arr; printf("第%d次比较,假定最小值:a[%d]=%d\n",i+1,i,arr);
printf("剩余比较的元素:"); for (int j=i+1; j<10; j++) {
//遍历数组,寻找最小数 if (min>arr[j]) { min = arr[j]; //设定交换数组元素下标标志 indexNum = j; //设定已经查找到最小数组元素标志(1标示找到最小值) flag = 1; }
printf("arr[%d]=%d\t",j,arr[j]); } printf("\n");
//最小值与假定值交换 if (flag==1) { temp = arr; arr = arr[indexNum]; arr[indexNum] = temp; }
//复位循环标志 flag = 0;
printf("筛选最小值:arr[%d]=%d\t",i,arr); printf("\n\n");
//把下标标志清零 indexNum = 0; } printf("\n--数组排序后--\n"); for (int i=0; i<10; i++) { printf("%d\t",arr);
} printf("\n");
return 0; }
|