selectSort
来源:互联网 发布:vb程序设计课后答案 编辑:程序博客网 时间:2024/06/05 04:30
selectSort:
1. idea:
比如说从小到大排序,第一个元素与ta后面的元素逐个比较,如果发现比该元素小的元素则swap,
这样一轮比较下来最小的元素放在了第一个位置;
然后第二个元素与后面的元素进行比较,把第二小的元素放在了第二个位置,。。。。。。
comflexity: n^2;
2. input:
数组A,size n;
3. output:
排好序的数组A;
4. process:
selectSort(int * A, int n){
for: i : 0~n-1; i++{
k=i;//每次比较时k的初始值。
for: j: i+1~n-1;j++{
if(A[k]>A[j])
k=j;
}// for 结束时找到一轮循环中最小的元素的编号K.
if(k>i)
swap(k,i);
}
}
6. 具体实现:
#define N 4
int A[N]={1, 5,2,4};
void swap1(int i,int j);
int main(){
int i,j;
//int flag;
for(i=0;i<N;i++)
{ //flag=1;
k=i;
for(j=i+1;j<N;j++)
{
if(A[k]>A[j])
{ k=j;
}
}
if(k!=i)
swap1(k,i);
}
return 0;
}
void swap1(int i,int j){
A[i]+=A[j];
A[j]=A[i]-A[j];
A[i]-=A[j];
}
1. idea:
比如说从小到大排序,第一个元素与ta后面的元素逐个比较,如果发现比该元素小的元素则swap,
这样一轮比较下来最小的元素放在了第一个位置;
然后第二个元素与后面的元素进行比较,把第二小的元素放在了第二个位置,。。。。。。
comflexity: n^2;
2. input:
数组A,size n;
3. output:
排好序的数组A;
4. process:
selectSort(int * A, int n){
for: i : 0~n-1; i++{
k=i;//每次比较时k的初始值。
for: j: i+1~n-1;j++{
if(A[k]>A[j])
k=j;
}// for 结束时找到一轮循环中最小的元素的编号K.
if(k>i)
swap(k,i);
}
}
6. 具体实现:
#define N 4
int A[N]={1, 5,2,4};
void swap1(int i,int j);
int main(){
int i,j;
//int flag;
for(i=0;i<N;i++)
{ //flag=1;
k=i;
for(j=i+1;j<N;j++)
{
if(A[k]>A[j])
{ k=j;
}
}
if(k!=i)
swap1(k,i);
}
return 0;
}
void swap1(int i,int j){
A[i]+=A[j];
A[j]=A[i]-A[j];
A[i]-=A[j];
}
0 0
- SelectSort
- selectsort
- selectsort
- selectsort
- selectSort
- SelectSort
- selectSort
- SelectSort
- insertsort & selectsort
- BubbleSort and SelectSort
- 选择排序:selectSort
- selectSort - 选择排序
- SelectSort,选择排序
- 选择排序SelectSort
- 选择排序-selectSort
- 选择排序--SelectSort
- 排序--SelectSort优化
- 选择排序-selectsort
- mysql中varchar和char的区别
- firefoxos gaia 开发环境
- Windows下MySQL多实例运行
- 实例对象与类变量
- [转自David_Lin]Oracle DBA每天每周每月应该做的工作,很规范
- selectSort
- sql,JS,C#的时间间隔或者时间加上某个数
- 赋值运算符/拷贝构造/构造/析构函数
- linux ln命令详解
- 分布式计算ECHO算法(IT部落格)
- StarlingMVC 几个标签的含义
- 滚动条自绘
- list转DataTable
- 01 - 搭建开发环境&helloworld