主题:请教伪代码的读法和实现,谢谢!
今天开始学习算法导论,第一次学着读伪代码,虽然自己有了一定的算法思想,但是不知道伪代码该如何按照它说的方法去实现:
A<5,2,4,6,1,3>
1 FOR j ← 2 TO length[A]
2 DO key ← A[j]
3 △Insert A[j] into the sorted swquence A[1..j-1]
4 i ← j-1
5 WHILE i>0 AND A[i]>key
6 DO A[i+1] ← A[i]
7 i ← i-1
8 A[i+1] ← key
这一段伪代码该如何读?
如何按照它写出C语言代码?麻烦了...谢谢各位!
以下是我的实现,但是我不知道符合伪代码的过程不?算法我会写,我现在的目的就是拿到一个伪代码,想知道如何去读,然后根据伪代码的方法实现!
#include<iostream>
void InsertSort(int A[],int n);
void InsertSort(int A[],int n)
{
int i,j,key;
for(j=1;j<n;j++)
{
key=A[j];
for(i=j-1;i>=0;i--)
{
if(A[i]>key)
A[i+1]=A[i];
else
break;
}
A[i+1]=key;
}
}
int main()
{
using namespace std;
int arr[6]={31,40,59,26,41,58};
for(int i=0;i<6;i++)
cout << arr[i] << " ";
cout << endl;
InsertSort(arr,6);
for(int j=0;j<6;j++)
cout << arr[j] << " ";
cout << endl;
cin.get();
}
A<5,2,4,6,1,3>
1 FOR j ← 2 TO length[A]
2 DO key ← A[j]
3 △Insert A[j] into the sorted swquence A[1..j-1]
4 i ← j-1
5 WHILE i>0 AND A[i]>key
6 DO A[i+1] ← A[i]
7 i ← i-1
8 A[i+1] ← key
这一段伪代码该如何读?
如何按照它写出C语言代码?麻烦了...谢谢各位!
以下是我的实现,但是我不知道符合伪代码的过程不?算法我会写,我现在的目的就是拿到一个伪代码,想知道如何去读,然后根据伪代码的方法实现!
#include<iostream>
void InsertSort(int A[],int n);
void InsertSort(int A[],int n)
{
int i,j,key;
for(j=1;j<n;j++)
{
key=A[j];
for(i=j-1;i>=0;i--)
{
if(A[i]>key)
A[i+1]=A[i];
else
break;
}
A[i+1]=key;
}
}
int main()
{
using namespace std;
int arr[6]={31,40,59,26,41,58};
for(int i=0;i<6;i++)
cout << arr[i] << " ";
cout << endl;
InsertSort(arr,6);
for(int j=0;j<6;j++)
cout << arr[j] << " ";
cout << endl;
cin.get();
}