C语言学习Day13

1#define _CRT_SECURE_NO_WARNINGS 1 2/************************************************ 3 * @Title:> 选择排序 4 * @Description:> 蛮力法实现选择排序 5 * @author:> HuaGe 6 * @date:> 2020/10/26 15:48 7 ***********************************************/ 8#include <stdio.h> 9#include <stdlib.h> 10 11//减治法思想实现插入排序 12void insertSort(int a[],int length) 13{ 14 //变量j用于标记已知数组中元素的下标,value用于存储待插入的数。 15 int j, value; 16 //第一个元素已经有序,所以从第二个元素起作为待插入元素 17 for (int i = 1; i < length-1; i++) 18 { 19 printf("第%d次插入:", i); 20 //输出排序后的数组 21 for (int k = 0; k < i; k++) 22 { 23 printf("%d\t", a[k]); 24 } 25 printf("\n"); 26 //保存待插入元素的值 27 value = a[i]; 28 j = i - 1; 29 //在已经排好序的序列中从右向左开始与待插入元素比较 30 while (j >= 0 && a[j] > value) 31 { 32 //若大于,此元素右移一位 33 a[j + 1] = a[j]; 34 //继续向左移动,比较下一个元素,直到找到小于待插入元素的元素 35 j--; 36 } 37 //找到小于待插入元素的元素(或者到了数组的最左边),在它的右边插入待插入元素。 38 a[j + 1] = value; 39 } 40} 41 42int main() 43{ 44 //创建一个数组 45 int arr[] = { 1,4,2,6,4,7 }; 46 //求出数组长度 47 int length = sizeof(arr) / sizeof(arr[0]); 48 printf("最初数组:"); 49 for (int i = 0; i < length; i++) 50 { 51 printf("%d ", arr[i]); 52 } 53 printf("\n"); 54 //调用排序函数 55 insertSort(arr,length); 56 //输出排序后的数组 57 printf("最后一次插入结果:"); 58 for (int i = 0; i < length; i++) 59 { 60 printf("%d\t", arr[i]); 61 } 62 return 0; 63} 64 65// 66//#include<stdio.h> 67//#include<string.h> 68// 69////用蛮力法实现选择排序 70//void selectSort(int* array,int length) 71//{ 72// for (int i = 0; i < length; i++) { 73// //假设位置为i的是要比较的最小值 74// int index = i; 75// //遍历比较(找后面是否有比i更小的数) 76// for (int j = i + 1; j < length; j++) { 77// if (array[j] < array[index]) { 78// index = j; 79// } 80// } 81// if (index != i) { 82// int temp = array[i]; 83// array[i] = array[index]; 84// array[index] = temp; 85// } 86// printf("第%d次排序:", i); 87// //输出排序后的数组 88// for (int k = 0; k <= length-1; k++) 89// { 90// printf("%d\t", array[k]); 91// } 92// printf("\n"); 93// 94// } 95//} 96// 97//int main() 98//{ 99// //创建一个数组 100// int arr[] = { 1,4,2,6,4,7 }; 101// //求出数组长度 102// int length = sizeof(arr) / sizeof(arr[0]); 103// printf("最初数组:"); 104// for (int i = 0; i < length; i++) 105// { 106// printf("%d ", arr[i]); 107// } 108// printf("\n"); 109// //调用排序函数 110// selectSort(&arr[0],length); 111// //输出排序后的数组 112// printf("最终数组:"); 113// for (int i = 0; i < length; i++) { 114// printf("%d ", arr[i]); 115// } 116// 117// return 0; 118//}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )