#define _CRT_SECURE_NO_WARNINGS 1
/************************************************
* @Title:> 选择排序
* @Description:> 蛮力法实现选择排序
* @author:> HuaGe
* @date:> 2020/10/26 15:48
***********************************************/
#include <stdio.h>
#include <stdlib.h>
//减治法思想实现插入排序
void insertSort(int a[],int length)
{
//变量j用于标记已知数组中元素的下标,value用于存储待插入的数。
int j, value;
//第一个元素已经有序,所以从第二个元素起作为待插入元素
for (int i = 1; i < length-1; i++)
{
printf("第%d次插入:", i);
//输出排序后的数组
for (int k = 0; k < i; k++)
{
printf("%d\t", a[k]);
}
printf("\n");
//保存待插入元素的值
value = a[i];
j = i - 1;
//在已经排好序的序列中从右向左开始与待插入元素比较
while (j >= 0 && a[j] > value)
{
//若大于,此元素右移一位
a[j + 1] = a[j];
//继续向左移动,比较下一个元素,直到找到小于待插入元素的元素
j--;
}
//找到小于待插入元素的元素(或者到了数组的最左边),在它的右边插入待插入元素。
a[j + 1] = value;
}
}
int main()
{
//创建一个数组
int arr[] = { 1,4,2,6,4,7 };
//求出数组长度
int length = sizeof(arr) / sizeof(arr[0]);
printf("最初数组:");
for (int i = 0; i < length; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
//调用排序函数
insertSort(arr,length);
//输出排序后的数组
printf("最后一次插入结果:");
for (int i = 0; i < length; i++)
{
printf("%d\t", arr[i]);
}
return 0;
}
//
//#include<stdio.h>
//#include<string.h>
//
////用蛮力法实现选择排序
//void selectSort(int* array,int length)
//{
// for (int i = 0; i < length; i++) {
// //假设位置为i的是要比较的最小值
// int index = i;
// //遍历比较(找后面是否有比i更小的数)
// for (int j = i + 1; j < length; j++) {
// if (array[j] < array[index]) {
// index = j;
// }
// }
// if (index != i) {
// int temp = array[i];
// array[i] = array[index];
// array[index] = temp;
// }
// printf("第%d次排序:", i);
// //输出排序后的数组
// for (int k = 0; k <= length-1; k++)
// {
// printf("%d\t", array[k]);
// }
// printf("\n");
//
// }
//}
//
//int main()
//{
// //创建一个数组
// int arr[] = { 1,4,2,6,4,7 };
// //求出数组长度
// int length = sizeof(arr) / sizeof(arr[0]);
// printf("最初数组:");
// for (int i = 0; i < length; i++)
// {
// printf("%d ", arr[i]);
// }
// printf("\n");
// //调用排序函数
// selectSort(&arr[0],length);
// //输出排序后的数组
// printf("最终数组:");
// for (int i = 0; i < length; i++) {
// printf("%d ", arr[i]);
// }
//
// return 0;
//}
C语言学习Day13
点赞
收藏