C语言数组排序

问题:设有数组定义int arr[N+1],在数组arr中已经有N个数据且递增有序,现在将x插入到数组arr的适当位置,使数组元素的值保持递增有序。

方法一:先将x存放在数组元素arr[N]中,再依次和前面的元素进行比较,若没有发生交换,直接跳出循环,程序结束。

#include 
#define N 10
int main(){
	
	int arr[N+1];
	int i,j,num;
	//依次输入前N个递增数据 
	for(i=0;i=0;i--){
		if(arr[i]
1 2 3 4 5 60 70 80 90 100
请输入要插入的数据:15
    1    2    3    4    5   15   60   70   80   90  100
--------------------------------
Process exited after 19.13 seconds with return value 0
请按任意键继续. . .

方法二:和方法一类似,从数组的最后一个元素arr[N-1]开始依次与x进行比较。

若arr[i]<=x,直接跳出循环。这种解法类似于数据结构中在数组中插入元素,通过移动数据(交换数据)来实现数据序列递增。

代码如下:

#include
#define N 10
void main()
{
	int arr[N+1]={10,20,30,40,50,60,70,80,90,99};
	int i,x;
	scanf("%d",&x);
	for(i=N-1;i>=0&&arr[i]>x;i--)
		arr[i+1]=arr[i];
	arr[i+1]=x;
	for(i=0;i

你可能感兴趣的:(算法,数据结构)