美文网首页
数组排序

数组排序

作者: 低吟浅唱1990 | 来源:发表于2017-02-14 23:44 被阅读7次

1.选择排序

<pre>
#include <stdio.h>
int main(void) {
int iTemp;
int iPos;
int i,j;
int a[10] = {65,45,32,13,67,98,25,42,18,23};
for (i = 0; i < 10; i++) {
printf("%d ",a[i]);
}
for (i = 0; i < 9; i++) {
iTemp = a[i];
for ( j = i+1; j < 10; j++) {
if(a[j]<iTemp){
iTemp = a[j];
iPos = j;
}
}
if(iPos!=0){
a[iPos] = a[i];
a[i] = iTemp;
iPos = 0;
}
}
printf("\n");
for (i = 0; i < 10; i++) {
printf("%d\t",a[i]);
}
return 0;
}

</pre>
2、冒泡法
<pre>
#include <stdio.h>
int main(void) {
int iTemp;
int i,j;
int a[10] = {65,45,32,13,67,98,25,42,18,23};
for(i=0;i<10;i++){
for (j = 9; j>=i; j--) {
if(a[j]<a[j-1]){
iTemp = a[j-1];
a[j-1]=a[j];
a[j] = iTemp;
}
}
}
printf("\n");
for (i = 0; i < 10; i++) {
printf("%d\t",a[i]);
}
return 0;
}

</pre>
3、交换排序法
<pre>
#include <stdio.h>
int main(void) {
printf("test");
int iTemp;
int iPos;
int i,j;
int a[10] = {65,45,32,13,67,98,25,42,18,23};
for(i=0;i<9;i++){
for(j=i+1;j<10;j++){
if(a[j]<a[i]){
iTemp = a[i];
a[i] = a[j];
a[j] = iTemp;
}
}
}
printf("\n");
for (i = 0; i < 10; i++) {
printf("%d\t",a[i]);
}
return 0;
}

</pre>
4、插入排序法
<pre>
#include <stdio.h>
int main(void) {
printf("test");
int iTemp;
int iPos;
int i,j;
int a[10] = {65,45,32,13,67,98,25,42,18,23};
for(i=0;i<10;i++){
iTemp = a[i];
iPos = i-1;
while((iPos>=0)&&(iTemp<a[iPos])){
a[iPos+1]=a[iPos];
iPos--;
}
a[iPos+1]=iTemp;
}
printf("\n");
for (i = 0; i < 10; i++) {
printf("%d\t",a[i]);
}
return 0;
}

</pre>
5、折半法排序
<pre>
#include <stdio.h>
void CelerityRun(int left,int right,int array[]);
int main(void) {
printf("test");
int iTemp;
int iPos;
int i,j;
int a[10] = {65,45,32,13,67,98,25,42,18,23};
CelerityRun(0,9,a);
printf("\n");
for (i = 0; i < 10; i++) {
printf("%d\t",a[i]);
}
return 0;
}
void CelerityRun(int left,int right,int array[]){
int i,j;
int middle,iTemp;
i = left;
j=right;
do{
while((array[i]<middle)&&(i<right)){
i++;
}
while((array[j]>middle)&&(j>left)){
j--;
}
if(i<=j){
iTemp = array[i];
array[i]=array[j];
array[j]=iTemp;
i++;
j--;
}
}while(i<=j);
}

相关文章

  • iOS 各种排序

    数组排序 数组中字典排序 数组中字典按照某个value排序 排序方法

  • Java 数组的排序、逆序

    数组的排序、逆序测试数据 数组选择排序 数组冒泡排序 数组逆序

  • java 数组和list排序

    数组排序 其中有数组排序和数组对象排序 数组一些数字排序则直接用Arrays.sort()加数组就可以。数组对象则...

  • 数组

    数组的遍历 数组是值类型 数组的排序 冒泡排序 多维数组

  • 2018-01-14

    php数组排序 sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据...

  • PHP排序算法

    排序算法 冒泡排序(数组排序) 快速排序(数组排序) 参考 http://www.cnblogs.com/enia...

  • 算法记录

    快速排序 基本算法: 归并排序讲数组分为两个子数组分别排序,并将有序的子数组归并使得整个数组排序; 快速排序通过一...

  • 选择排序

    选择排序 调用选择排序 生成数组 打印输出排序数组

  • 按照数组中的字符串顺序给另一个数组排序

    数组1 数组2: 数组1按照数组2的顺序排序 sortedUserDicts就是排序后的数组

  • 排序问题

    数组排序 数组排序最简单了,直接Arrays.sort(a); a是待排序的数组 根据对象中的成员变量来排序 这个...

网友评论

      本文标题:数组排序

      本文链接:https://www.haomeiwen.com/subject/qsmfwttx.html