- #include<stdio.h>
- int bubbleSort(int[] arr);
- int selectSort(int[] arr);
- int foreach(int[] arr,int key);
- int printArray(int[] arr)
- int main(){
- int[] arr={9,4,1,8,6,5,1};
- //冒泡排序
- printArray(arr);
- bubbleSort(arr);
- printArray(arr);
- //选择排序
- printArray(arr);
- selectSort(arr);
- printArray(arr);
- //找值
- foreach(arr);
- }
- //冒泡排序
- int bubbleSort(int[] arr){
- for(int i=0;i<size;i++){// 外层循环控制整个循环要比较的次数
- for(int j=0;j<size-1-i;j++){//内循环每循环完一次总有一个最大值交换到末尾,将比较次数减i,减一是为了防止脚标越界
- if(arr[j]>arr[j+1]){//判断数组中一对相邻数据,进行交换,大的元素下沉
- int temp=arr[j];// 定义一个第三方变量用于存储数组中要比较的的一个元素
- arr[j]=arr[j+1];//将后一个要比较的元素放到第一个元素中
- arr[j+1]=temp;
- }
- }
- }
- //选择排序
- int selectSort(int[] arr){
- for(int i=0;i<size-1;i++){//外层循环控制总的比较次数
- for(int j=i+1;j<size;j++){//内循环j=i+1,每次比较第二元素总是第一个元素的后一位
- if(arr[i]>arr[j]){//设定第一个元素为最大值,与其后一位元素比较大小,每次循环后第二元素往后移一位
- int temp=arr[i];//交换两个数据元素,将小值放在固定位大值往后放
- arr[i]=arr[j];
- arr[j]=temp;
- }
- }
- }
- }
- //找值
- int foreach(int[] arr,int key){//找到指定元素在数组中的存储位置
- for(int i=0;i<size;i++){//遍历数组进行查找
- if(arr[i]==key){//如果找到
- return i;//返回对应的脚标
- }else{//否则没有找到返回负一
- return -1;
- }
- }
- }
- //打印数组元素
- int printArray(int[] arr){//输出打印数组
- printf("[");
- for(int i=0;i<size;i++){//遍历整个数组进行输出
- if(arr[i]<size-1){
- printf("%d,",arr[i]);
- }else{
- printf("%d]\n"arr[i]);
- }
- }
- }
- }
复制代码 |
|