插入排序

初试LiverWriter python..原来python是强类型的动画语言 囧,直接敲代码是有难度,顺便查简明手册。

#!/usr/bin/env python
import sys
import random
def getRandomArr():
    arr =[]
    for i in range(10):
        ran = random.randint(1,100)
        arr.append(ran)
    return arr;

def insertSort(arr):
    for i in range(2,len(arr)):
        j=i
        while j>0:
            if(arr[j]<arr[j-1]):
                tmp = arr[j]
                arr[j] = arr[j-1]
                arr[j-1]=tmp
            j=j-1
    return arr

unsort = getRandomArr()
for i in unsort:
    sys.stdout.write(str(i)+" ")

print

sorted = insertSort(unsort)
for i in sorted:
    sys.stdout.write(str(i)+" ")
    
print

……………………….

倒腾了大半天又整了个C++版,也是第一次写C++程序 哈哈。 传递数组难住我好久。

#include <stdio.h>
#include <iostream>
#include "Sort.h";

using namespace std;

	
int main(void)
{
	Sort *sort = new Sort();

	int *p = 0;
	p=sort->GetRandArray(p);

	sort->InsertSort(p);
	
	printf("\n");

	for(int i=0;i<10;i++)
	{
		printf("%d ",p[i]);
	}
	
	int i=0;
	cin >> i;

	return 0;
}
#include <iostream>
#include <cstdlib>

using namespace std;

class Sort
{
	public:
		Sort(void);
		~Sort(void);

		int* GetRandArray(int*);
		int* InsertSort(int*);
};
#include "Sort.h"


Sort::Sort(void)
{
}
Sort::~Sort(void)
{
}

int* Sort::GetRandArray(int* p)
{
	p = int[10];
	for(int i=0;i<10;i++)
	{
		p[i] = rand() % 100 +1;
		printf("%d ",p[i]);
	}
	return p;
}


int* Sort::InsertSort(int* a){
	
	for(int i=1;i<10;i++)
	{
		int j =i;
		while(j==0)
		{
			if(a[j]<a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
			j--;
		}
	}
	return a;
}
原文地址:https://www.cnblogs.com/mad/p/1638340.html