大同市网站建设_网站建设公司_过渡效果_seo优化
2025/12/18 13:29:57 网站建设 项目流程
点击查看代码
#include <stdio.h>int main(){ // 冒泡排序/*** 冒泡排序是从头开始,相邻两个元素进行比较* 要通过双重循环,第一重循环是元素间要比较的轮数,终止条件是元素个数减一,* 因为第一次是将数组中最大的元素移动到倒数第一个,第二次是将数组中第二大的数移动到倒数第二个* ···由此可推,最后一个最小的元素便不用再进行比较* 第二重循环是从头开始,相邻两个元素进行比较,(3和2比,3大,则交换两者位置→arr[0]=2,arr[1]=3;* 接着3和1比,3大,则交换→arr[1]=1,arr[2]=3;接着3和6比,6大,不变;接着6和5比,6大,交换→arr[3]=5,arr[4]=6)···* 如此其终止条件为元素个数减1再减i,因为倒数i个元素已经排序好,是最大的i个元素**/int arr[] = {3,2,1,6,5,8,7,9,4,0};//可以增加动态计算数组长度//int arrSize = sizeof(arr) / sizeof(arr[0]);for(int i = 0 ; i < 10 - 1 ; i++){for(int j = 0 ; j < 10 - 1- i ; j++){if(arr[j] > arr[j+1]){int t = arr[j];arr[j] = arr[j+1];arr[j+1] = t;}}}for(int i = 0 ; i < 10 ; i++){printf("%d",arr[i]);}// 选择排序/*选择排序的核心是:每一轮确定「未排序区间第一个元素」的最终位置双重循环:1. 第一重循环(i):控制未排序区间的起点(i是当前要确定位置的元素下标),终止条件是元素个数-1(因为最后1个元素无需再比较,自然是最大值);2. 第二重循环(j):从i的下一个元素开始,遍历所有未排序元素,把比arr2[i]小的元素逐个和arr2[i]交换,最终让arr2[i]成为未排序区间的最小值;(此版本是选择排序的“交换版”,每轮找到更小的元素就立即交换,逻辑正确)*/int arr2[] = {3,2,1,6,5,8,7,9,4,0};for(int i = 0  ; i < 10 - 1 ; i++){for(int j = i + 1; j < 10 ; j++){if(arr2[i] > arr2[j]){int t = arr2[i];arr2[i] = arr2[j];arr2[j] = t;}}}for(int i = 0 ; i < 10 ; i++){printf("%d",arr2[i]);}return 0;
}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询