access violiation
#include <fstream>
#include <stdio.h>
#include "my.h"
#include<stdlib.h>
#include<math.h>
void QuickSort(int a[],int low,int high)
{ int i=low,j=high;
int temp=a[low];
while(i<j)
{ while(j>i&&temp<=a[j]) j--;
if(j>i) { a[i]=a[j]; i++; }
while(j>i&&a[i]<temp) i++;
if(j>i) { a[j]=a[i]; j--; }
}
a[i]=temp;
if(low<i) QuickSort(a,low,i-1);
if(i<high)QuickSort(a,j+1,high);
}
void insertSort(int a[],int n){
int k,t,j;
for ( j=0; j<n; j++){
t = a[j];
for (k=j-1; k>=0 && t<a[k]; k--){
a[k + 1] = a[k];
}
a[k + 1] = t;
}
}
void selectionSort(int a[],int n){
int i,j,min,temp;
for(j=0; j < n - 1; j++){
min=j;
for(i=j+1; i < n; i++)
if(a[i] < a[min])
min = i;
if(j != min){
temp = a[j];
a[j] = a[min];
a[min] = temp;
}
}
}
void bubbleSort(int a[],int n){
int temp = 0,i,j;
for( i = 0;i < n;i++){
for( j = 0;j < n - i -1;j++){
if(a[j] > a[j + 1]){
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
void dui(int a[],int n)
{
int i , k;
for (i = n/2-1; i >= 0; i --) shift(a , i , n);
for (i = n-1; i >= 1; i --)
{
k = a[0]; a[0] = a[i]; a[i] = k;
shift(a , 0 , i);
}
}
void shift(int a[] , int i , int m)
{
int k , t;
t = a[i]; k = 2 * i + 1;
while (k < m)
{
if ((k < m - 1) && (a[k] < a[k+1])) k ++;
if (t < a[k]) {a[i] = a[k]; i = k; k = 2 * i + 1;}
else break;
}
a[i] = t;
}
void Merge(int L[],int low,int mid,int high) //归并
{
int i=low,j=mid+1,p=0;
int *temp;
temp=(int *)malloc((high-low+1)*sizeof(int)); //用一个动态的数组存放暂时排好序的数组
if(!temp)return;
while(i<=mid&&j<=high)
temp[p++]=(L[i]<=L[j])?L[i++]:L[j++];
while(i<=mid) //添加从i到mid的数到temp中
temp[p++]=L[i++];
while(j<=high) //添加从j到high的数到temp中
temp[p++]=L[j++];
for(p=0,i=low;i<=high;p++,i++)
L[i]=temp[p];//将temp中一排好序的数放入L中
}
void MergeSort(int *p,int low,int high)//拆分
{
int mid;
if(low<high)
{
mid=(low+high)/2;
MergeSort(p,low,mid);
MergeSort(p,mid+1,high);
Merge(p,low,mid,high);
}
}
void initiate(int *x, int n)
{
int h, j, k, t;
for (h=n/2; h>0; h=h/2) /*控制增量*/
{
for (j=h; j<n; j++) /*这个实际上就是上面的直接插入排序*/
{
t = *(x+j);
for (k=j-h; (k>=0 && t<*(x+k)); k-=h)
{
*(x+k+h) = *(x+k);
}
*(x+k+h) = t;
现在我真的急需解答,那位好心的高手帮帮忙啊!!
当编译和链接都没有错误的时候,运行时出现了内存不能读取的问题,上面显示unhandled exception in 功能函数(本文件名)access violiation