6.用插入排序对任意一组随机数据进行随机数组进行排序(用循环和递归两种方法)
来源:互联网 发布:java软件下载平台 编辑:程序博客网 时间:2024/05/05 09:12
/*
插入排序适合边插入边排序
思想:将每个数向后移动
解题步骤:
1.循环条件的判断
2.将前面的数向后移动一位
3.将要交换的数跟未移动前面的数进行比较,如果适合条件交换就交换,否则不交换,
4.重复步骤2,3
*/
//模拟插入
模拟插入排序
#include<stdio.h>
#include<time.h>
#define N 6
void main()
{
int a[6] = { 6, 6, 6, 6, 7, 8 };
int i = 5;
int temp;
temp = a[i];
while (i>0&&temp<a[i-1])
{
a[i] = a[i - 1];
i--;
if (temp > a[i - 1])
{
a[i]=temp;
break;
}
}
for (int i = 0; i < 6; i++)
{
printf("%d ",a[i]);
}
system("pause");
}
//用循环方法
#include<stdio.h>
#include<time.h>
#define N 20
void main()
{
int a[N];
time_t ts;//初始化随机数组
unsigned data = time(&ts);
srand(data);//创建随机种子
//初始化数组
printf("没有排序时:\n");
for (int i = 0; i < 20; i++)
{
a[i] = rand() % 300;
printf("%d ", a[i]);
}
//开始进行排序
printf("\n");
for (int i = 0; i < N; i++)
{
int temp = a[i];
int j = i;
while (j>0 && temp<a[j - 1])
{
a[j] = a[j - 1];
j--;
if (temp > a[j - 1])
{
a[j] = temp;
break;
}
}
}
printf("排序后:\n");
for (int i = 0; i < 20; i++)
{
printf("%d ", a[i]);
}
printf("\n");
system("pause");
}
//用递归解决插入排序
#include<stdio.h>
#include<time.h>
#define N 20
void ChaRu(int i, int a[]);
void ChaRu(int i, int a[])
{
if (i==20)
{
return;
}
int temp;
temp = a[i];
while (i > 0 && temp<a[i - 1])
{
a[i] = a[i - 1];
i--;
if (temp > a[i - 1])
{
a[i] = temp;
break;
}
}
ChaRu(i + 1, a);
}
void main()
{
//初始化数组
int a[N];
time_t ts;
unsigned int data = time(&ts);
srand(data);//创建随机种子
for (int i = 0; i < N; i++)
{
a[i] = rand() % 300;
}
ChaRu(0, a);
for (int i = 0; i < N; i++)
{
printf("%d ", a[i]);
}
printf("\n");
system("pause");
}
- 6.用插入排序对任意一组随机数据进行随机数组进行排序(用循环和递归两种方法)
- //4.创建一个20个大小的随机数组,用冒泡法对其进行排序(用for while 递归三种方式对其进行排序)
- 对随机数组进行冒泡排序
- c语言对一组数据随机排序
- 对一组随机生成数进行几种常用排序算法的分析设计和实现之一 ——冒泡排序
- VS2010使用扩展方法对List<T>进行随机排序
- C#对list列表进行随机排序的方法
- 使用随机函数初始化一个数组,并对数组进行排序(冒泡排序法和选择排序法)
- 对查询结果进行随机排序
- 对随机的10个数进行排序
- 对数组进行排序的两种方法
- 首先 随机创建一个数组 然后对数组进行排序 后在进行二分查找
- 对随机数据排序
- 对随机数据排序
- 选择法对数据进行排序 指针和数组两种方式 经典
- iOS开发之把数组中的元素进行随机排序、随机数产生的几种方法
- 对一组数字随机排序算法
- 一组数字随机排序
- 机器视觉对印刷业的影响
- sql 从右边查询指定字符
- easyui在ie下要注意的问题
- 初学者很实用之chm结尾的参考手册打开后无法正常显示
- NTFS For Mac如何更新
- 6.用插入排序对任意一组随机数据进行随机数组进行排序(用循环和递归两种方法)
- MS SQL中select top 后跟变量
- django form.is_valid()总是返回false
- Java中Runnable和Thread的区别
- JavaCodeTra 猴子选猴王 约瑟夫循环
- flex视频播放
- SQL日期时间格式转换
- windows 下ORA-27102: out of memory错误
- 数字证书转换cer---pem