当前位置: 编程技术>移动开发
本页文章导读:
▪AVAudioPlayer 容易例子 AVAudioPlayer 简单例子
包括循环播放以及背景播放,满足一般朋友的需求。
包含一个简单例子。
......
▪ 希尔排序,快速排序,冒泡排序的比较 希尔排序,快速排序,冒泡排序的比较。
希尔排序基本思想 基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一.........
▪ mac 中筹建erlang 开发环境 mac 中搭建erlang 开发环境
最近一直在想如何把linux 上erlang程序安装到Mac 上,我还真发现一个好用的工具brew。关于其简介我从网上copy 一些: Homebrew作为OS X上强大的包管理器,为系统软件.........
[1]AVAudioPlayer 容易例子
来源: 互联网 发布时间: 2014-02-18
AVAudioPlayer 简单例子
包括循环播放以及背景播放,满足一般朋友的需求。
包含一个简单例子。
[2] 希尔排序,快速排序,冒泡排序的比较
来源: 互联网 发布时间: 2014-02-18
希尔排序,快速排序,冒泡排序的比较。
希尔排序基本思想
基本思想:
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。
该方法实质上是一种分组插入方法。
给定实例的shell排序的排序过程
假设待排序文件有10个记录,其关键字分别是:
49,38,65,97,76,13,27,49,55,04。
增量序列的取值依次为:
5,3,1
排序过程如【动画模拟演示】。
http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.2.2.1.htm
#if 0
2012-12-09 18:23:18.019 排序算法[974:707] before :
2012-12-09 18:23:54.122 排序算法[974:707] after :26.1
2012-12-09 18:24:58.085 排序算法[999:707] before :
2012-12-09 18:25:00.967 排序算法[999:707] after :2.0
2012-12-09 18:40:25.880 排序算法[1081:707] before :
2012-12-09 18:40:30.379 排序算法[1081:707] after :4.5
2012-12-09 18:41:30.726 排序算法[1112:707] before :
2012-12-09 18:41:33.741 排序算法[1112:707] after :
2012-12-09 18:42:12.793 排序算法[1135:707] after :
2012-12-09 18:42:10.099 排序算法[1135:707] before :
2012-12-09 18:43:06.847 排序算法[1161:707] before :
2012-12-09 18:43:33.619 排序算法[1161:707] after :
#endif
#import <Foundation/Foundation.h>
//#include <stdio.h>
//#include <stdlib.h>
//#include <math.h>
#define MAX1 18 //这里设定要对多少个元素排序
void shellsort(int A[], int N, int *);
void printarray(int A[]);
void mysort(int m[]);
void quick_sort(int arr[], int left, int right);
int main (int argc, const char * argv[])
{
@autoreleasepool {
int i, s[MAX1];
int *sed;
int sedgewick[] = { // Sedgewick增量 赛奇维克增量
1073643521, 603906049, 268386305, 150958081, 67084289,
37730305, 16764929, 9427969, 4188161, 2354689,
1045505, 587521, 260609, 146305, 64769,
36289, 16001, 8929, 3905, 2161,
929, 505, 209, 109, 41,
19, 5, 1, 0 }; //用 0 标记终点
for (sed = sedgewick; *sed > MAX1; sed++) // 增量必须小于元素个数,并且是小于增量中的最大的一个。
{ }
for (i = 0; i < MAX1; i++){
s[i] = 1+(int) ((float)MAX1*rand()/(RAND_MAX+1.0));
}
// }
NSLog(@"before :");
// printarray(s);
NSLog(@"======%d======",*sed);
shellsort(s, MAX1, sed);//希尔排序
// mysort(s);//冒泡排序。
// quick_sort(s, 0, sizeof s / sizeof (int) - 1);//快速排序。
NSLog(@"after :");
printarray(s);
// for (int i=0; i<2; i++) //这里不加{}表示他把下个for循环都包裹了。因为他包裹的是一个if语句或一个for或一个”;“结尾的语句。
//// {
// for (int j=0; j<2; j++) {
// NSLog(@"我");
// }
//// }
}
return 0;
}
void shellsort(int v[], int n, int *sed)//v[]是数组的值,n为数组的个数。sed 赛奇维克增量
{
int i, j, temp;
int *gap;
for (gap = sed; *gap > 0; gap++)//看有几个赛奇维克。共10个数。 2,1;
for (i = *gap; i < n; i++)//越来越多的循环。
for (j = i - *gap; j>=0 && v[j]>v[j + *gap]; j-=*gap) {
temp = v[j];
v[j] = v[j + *gap];
v[j + *gap] = temp;
}
}
void mysort(int m[]){//普通的冒泡
int temp;
for (int i=0; i<MAX1; i++) {
for (int j=i; j<MAX1-1; j++) {
if (m[i]>m[j]) {
temp=m[i];
m[i]=m[j];
m[j]=temp;
}
}
}
}
void quick_sort(int arr[], int left, int right)//快速排序。
{
int i = left, j = right, temp = arr[i];
while (i < j)
{
while (i < j && temp <= arr[j])
{
j--; // 右边找到比temp小的那个数
}
arr[i] = arr[j];
while (i < j && arr[i] <= temp)
{
i++; // 左边找到比temp大的那个数
}
arr[j] = arr[i];
}
arr[i] = temp;
if (i - 1 > left) quick_sort(arr, left, i-1);
if (i + 1 < right) quick_sort(arr, i+1, right);
}
void printarray(int a[])
{
int i;
for (i = 0; i < MAX1; i++)
printf(" %d", a[i]);
printf("/n");
}
希尔排序基本思想
基本思想:
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。
该方法实质上是一种分组插入方法。
给定实例的shell排序的排序过程
假设待排序文件有10个记录,其关键字分别是:
49,38,65,97,76,13,27,49,55,04。
增量序列的取值依次为:
5,3,1
排序过程如【动画模拟演示】。
http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.2.2.1.htm
#if 0
2012-12-09 18:23:18.019 排序算法[974:707] before :
2012-12-09 18:23:54.122 排序算法[974:707] after :26.1
2012-12-09 18:24:58.085 排序算法[999:707] before :
2012-12-09 18:25:00.967 排序算法[999:707] after :2.0
2012-12-09 18:40:25.880 排序算法[1081:707] before :
2012-12-09 18:40:30.379 排序算法[1081:707] after :4.5
2012-12-09 18:41:30.726 排序算法[1112:707] before :
2012-12-09 18:41:33.741 排序算法[1112:707] after :
2012-12-09 18:42:12.793 排序算法[1135:707] after :
2012-12-09 18:42:10.099 排序算法[1135:707] before :
2012-12-09 18:43:06.847 排序算法[1161:707] before :
2012-12-09 18:43:33.619 排序算法[1161:707] after :
#endif
#import <Foundation/Foundation.h>
//#include <stdio.h>
//#include <stdlib.h>
//#include <math.h>
#define MAX1 18 //这里设定要对多少个元素排序
void shellsort(int A[], int N, int *);
void printarray(int A[]);
void mysort(int m[]);
void quick_sort(int arr[], int left, int right);
int main (int argc, const char * argv[])
{
@autoreleasepool {
int i, s[MAX1];
int *sed;
int sedgewick[] = { // Sedgewick增量 赛奇维克增量
1073643521, 603906049, 268386305, 150958081, 67084289,
37730305, 16764929, 9427969, 4188161, 2354689,
1045505, 587521, 260609, 146305, 64769,
36289, 16001, 8929, 3905, 2161,
929, 505, 209, 109, 41,
19, 5, 1, 0 }; //用 0 标记终点
for (sed = sedgewick; *sed > MAX1; sed++) // 增量必须小于元素个数,并且是小于增量中的最大的一个。
{ }
for (i = 0; i < MAX1; i++){
s[i] = 1+(int) ((float)MAX1*rand()/(RAND_MAX+1.0));
}
// }
NSLog(@"before :");
// printarray(s);
NSLog(@"======%d======",*sed);
shellsort(s, MAX1, sed);//希尔排序
// mysort(s);//冒泡排序。
// quick_sort(s, 0, sizeof s / sizeof (int) - 1);//快速排序。
NSLog(@"after :");
printarray(s);
// for (int i=0; i<2; i++) //这里不加{}表示他把下个for循环都包裹了。因为他包裹的是一个if语句或一个for或一个”;“结尾的语句。
//// {
// for (int j=0; j<2; j++) {
// NSLog(@"我");
// }
//// }
}
return 0;
}
void shellsort(int v[], int n, int *sed)//v[]是数组的值,n为数组的个数。sed 赛奇维克增量
{
int i, j, temp;
int *gap;
for (gap = sed; *gap > 0; gap++)//看有几个赛奇维克。共10个数。 2,1;
for (i = *gap; i < n; i++)//越来越多的循环。
for (j = i - *gap; j>=0 && v[j]>v[j + *gap]; j-=*gap) {
temp = v[j];
v[j] = v[j + *gap];
v[j + *gap] = temp;
}
}
void mysort(int m[]){//普通的冒泡
int temp;
for (int i=0; i<MAX1; i++) {
for (int j=i; j<MAX1-1; j++) {
if (m[i]>m[j]) {
temp=m[i];
m[i]=m[j];
m[j]=temp;
}
}
}
}
void quick_sort(int arr[], int left, int right)//快速排序。
{
int i = left, j = right, temp = arr[i];
while (i < j)
{
while (i < j && temp <= arr[j])
{
j--; // 右边找到比temp小的那个数
}
arr[i] = arr[j];
while (i < j && arr[i] <= temp)
{
i++; // 左边找到比temp大的那个数
}
arr[j] = arr[i];
}
arr[i] = temp;
if (i - 1 > left) quick_sort(arr, left, i-1);
if (i + 1 < right) quick_sort(arr, i+1, right);
}
void printarray(int a[])
{
int i;
for (i = 0; i < MAX1; i++)
printf(" %d", a[i]);
printf("/n");
}
[3] mac 中筹建erlang 开发环境
来源: 互联网 发布时间: 2014-02-18
mac 中搭建erlang 开发环境
最近一直在想如何把linux 上erlang程序安装到Mac 上,我还真发现一个好用的工具brew。
关于其简介我从网上copy 一些:
Homebrew作为OS X上强大的包管理器,为系统软件提供了非常方便的安装方式,独特式的解决了包的依赖问题,并不再需要烦人的sudo,一键式编译,无参数困扰,真的,你值得拥有。
brew 的安装:
$ curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1
升级
$ sudo brew update
erlang 有了brew 的帮助 安装erlang 虚拟机就太小儿科
$ sudo brew install erlang
报错 执行
$sudo brew link autoconf
再次执行
$sudo brew install erlang
等待安装完成 即可!
最新技术文章: