插入排序
初试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; }