冒泡排序,选择排序,插入排序,随机生成100个数并保存到数组中

1.随机生成范围在1-100的数,并保存到数组中

#include<iostream>
#include<ctime>
using namespace std;
int main() 
{
    
    
	//time()用系统时间初始化种。为rand()生成不同的随机种子。
	srand((unsigned)time(NULL));
	int* array = new int[10];
	for (int index = 0; index < 10; index++) 
	{
    
    
		//范围为1-100的随机数
		array[index] = rand() % 100 + 1;
	}
	//输出数组
	for (int index = 0; index < 10; index++) 
	{
    
    
		cout << array[index] << " ";
	}
	delete[] array;
}

2.冒泡排序

#include<iostream>
#include<ctime>
using namespace std;
//本例主要实现的是冒泡排序
int main() 
{
    
    
	int n = 50;
	//time()用系统时间初始化种。为rand()生成不同的随机种子。
	srand((unsigned)time(NULL));
	int* array = new int[n];
	//使用随机数初始化要进行排序的数组
	for (int index = 0; index < n; index++)
	{
    
    
		array[index] = rand() % 100 + 1;
	}
	//进行冒泡排序
	for (int index = n - 1; index > 0; index--) 
	{
    
    
		int temp = 0;
		for (int scan = 0; scan < index; scan++) 
		{
    
    
			if (array[scan] > array[scan + 1]) 
			{
    
    
				temp = array[scan];
				array[scan] = array[scan + 1];
				array[scan + 1] = temp;
			}
		}
	}
	//输出排序结果
	for (int index = 0; index < n; index++) 
	{
    
    
		cout << array[index] << " ";
	}
	delete[] array;
}

3.选择排序

#include<iostream>
#include<ctime>
using namespace std;
//本例演示选择排序,按升序排序输出
int main() 
{
    
    
	int n = 10;
	//time()用系统时间初始化种。为rand()生成不同的随机种子。
	srand((unsigned)time(NULL));
	int* array = new int[n];
	//使用随机数初始化要进行排序的数组
	for (int index = 0; index < n; index++)
	{
    
    
		array[index] = rand() % 100 + 1;
	}
	//选择排序
	//在未排序的序列里寻找最小的元素,并将其放在未排序序列的最前面
	//循环一遍结束后,未排序的元素数量-1,以排序的元素数量+1
	for (int index = 0; index < n; index++) 
	{
    
    
		int temp = 0;
		for (int scan = index + 1; scan < n; scan++) 
		{
    
    
			if (array[index] > array[scan])
			{
    
    
				temp = array[index];
				array[index] = array[scan];
				array[scan] = temp;
			}
		}
	}
	//输出排序结果
	for (int index = 0; index < n; index++) 
	{
    
    
		cout << array[index] << " ";
	}
	delete[] array;
}

4.直接插入排序

#include<iostream>
#include<ctime>
using namespace std;
//本例演示的是插入排序
int main() 
{
    
    
	int n = 20;
	//time()用系统时间初始化种。为rand()生成不同的随机种子。
	srand((unsigned)time(NULL));
	int* array = new int[n];
	//使用随机数初始化要进行排序的数组
	for (int index = 0; index < n; index++)
	{
    
    
		array[index] = rand() % 100 + 1;
	}
	//插入排序,按升序排序
	for (int index = 1; index < n; index++) 
	{
    
    
		int temp = array[index];
		for (int scan = index - 1; scan >= 0; scan--) 
		{
    
    
			//如果大,就右移一位
			if (array[scan] > temp) 
			{
    
    
				array[scan + 1] = array[scan];
				//如果要插入的数字是第一个
				if (scan == 0) 
				{
    
    
					array[0] = temp;
				}
			}
			else if (array[scan] <= temp) 
			{
    
    
				array[scan + 1] = temp;
				break;
			}
		}
	}
	//输出排序后的结果
	for (int index = 0; index < n; index++) 
	{
    
    
		cout << array[index] << " ";
	}
	delete[] array;
}

后记:本博文如有错误,还望大家指出,谢谢

猜你喜欢

转载自blog.csdn.net/weixin_46841376/article/details/112751641