`
seastar09
  • 浏览: 17239 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

排序方法举例

J# 
阅读更多
冒泡排序:相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其他的数进行类似操作
import java.util.Random;


public class SortTest {

/**
* @param args
*/

public static void main(String[] args) {

int[] array=new SortTest().numCreate();
new SortTest().numSort(array);
   
}
public int[] numCreate(){
int[] array = new int[10];
for(int i=0;i<10;i++){
//array[i]=(int)(Math.random()*100);
Random r = new Random();
array[i] = r.nextInt(100);
for(int j=0;j<i;j++){
if(array[i] == array[j]){
i--;
break;
}
}
}
for(int t=0;t<array.length;t++){
System.out.print(array[t]+",");
}
return array;
}
public void numSort(int[] array){
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-1-i;j++){


int temp;
if(array[j] < array[j+1]){
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
for(int t=0;t<array.length;t++){
System.out.print("-----"+array[t]);
}
}

}

二分排序算法:(递归方式)
import java.util.Random;


public class SortTest {

/**
* @param args
*/

public static void main(String[] args) {

//int[] array=new SortTest().numCreate();
int[] array = {11,13,16,23,29,45,47,67,78,89};
int x=29;
System.out.println(new SortTest().numSort(array,x,0,array.length-1));
   
}

public int numSort(int[] array,int x,int begin,int end){
if(x < array[begin] || x>array[end] || begin > end)
return -1;

int middle = (begin+end)>>>1;
if(x < array[middle]){
return numSort(array,x,begin,middle);
} else if(x > array[middle]){
return numSort(array,x,middle,end);
}else {
return middle;
}
}

}
非递归查找
public int numSort(int[] array,int x,int begin,int end){
if(x < array[begin] || x>array[end] || begin > end)
return -1;
int index=0;
while( begin < end){
int middle = (begin+end)>>>1;
if(x < array[middle]){
end = middle-1;
}else if(x> array[middle]){
begin = middle + 1;
}else {
return middle;
}
}
return -1;
}

插入排序法:将一个记录插入到已排好序的有序表(有可能是空表)中,从而得到一个新的记录数增1的有序表。
public void numSort(int[] array){
for(int i=1;i<array.length;i++){
for(int j=0;j<i;j++){
int temp;
if(array[j] > array[i]){
temp = array[i];
array[i]=array[j];
array[j]=temp;
}
}

}
for(int t=0;t<array.length;t++){
System.out.print("-----"+array[t]);
}
}

选择排序法:每一趟从待排序的数据元素中选出最小(或最大)的一个元素, 顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。

public void numSort(int[] array){
for(int i=1;i<array.length;i++){
int index=0;
for(int j=1;j<=array.length-i;j++){
if(array[j] > array[index]){
index=j;
}
}
int temp;
temp = array[array.length-i];
array[array.length-i]=array[index];
array[index]=temp;
}
for(int t=0;t<array.length;t++){
System.out.print("-----"+array[t]);
}
}
分享到:
评论

相关推荐

    C语言经典排序算法及举例(非常实用)

    以下是对标题"《C语言经典排序算法及举例》"中涉及的排序算法进行的详细解释: 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,它通过重复遍历待排序的数组,依次比较相邻元素并交换顺序,使较大的元素逐渐...

    C语言程序设计-程序举例选择排序.pptx

    C语言程序设计-选择排序算法实现 在本节中,我们将探讨选择排序算法的实现细节,通过一个示例程序来演示如何使用选择排序法对数组中的元素进行排序。 选择排序算法的基本思想是,每次选出数组中最小的元素,将其与...

    delphi Tlist使用方法举例

    总结来说,"delphi Tlist使用方法举例" 这个DEMO主要展示了如何在Delphi中使用 `TList` 类来管理对象集合。通过创建 `TList` 实例,添加和删除对象,以及遍历列表进行操作,我们可以学习到如何在实际项目中灵活运用 ...

    数据结构排序算法汇总包-直接插入排序 折半插入排序 2—路插入排序 表插入排序 希尔排序 起泡排序 快速排序 简单选择排序 树形选择排序 堆排序 归并排序链式基数排序

    实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...

    排序方法综述及其性能演示平台设计--软件工程本科生毕业论文.docx

    排序方法综述及其性能演示平台设计 排序方法是计算机科学中的一种基本技术,用于对数据进行排序和管理。该技术广泛应用于数据库管理、数据挖掘、人工智能等领域。在软件工程领域中,排序方法是软件开发和维护的关键...

    快速排序 快速排序例子

    通过一次遍历将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。...

    插入排序 插入排序示例

    ### 插入排序详解 #### 一、插入排序概述 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上通常采用in-...

    数据结构中个各种排序法

    本篇将深入探讨数据结构中的各种排序方法,包括基本概念、分类、重要术语以及具体的排序算法。 1. **排序的基本概念** - 排序,又称分类,是指将一个元素顺序随机的序列转化为按关键字有序的序列。关键字是用于...

    C语言之排序法举例.c

    C语言实战开发100例之排序

    快速排序举例

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer):将一个大问题分解成若干个小问题来解决,最终合并小问题的结果得到原问题的答案。在快速...

    C++编写字符串的排序举例

    通过对代码的详细解析,我们了解了字符串输入、比较和排序的具体实现方法。同时,也提到了一些在实际开发中需要注意的问题,这对于初学者理解字符串处理的基础概念以及如何编写安全有效的代码具有重要意义。

    三种冒泡排序算法的例子

    三种冒泡排序算法的例子,比较区别与联系!

    java中Map集合的排序方法

    HashMap的应用实例 Map中元素存放是无序的 HashMap注意事项: 1,HashMap底层维护一个数组,我们向HashMap中所放置的对象实际上是存储在该数组...HashMap应用举例:控制台输入一句英语,简单统计各个单词出现的次数

    C语言程序设计-程序举例-冒泡排序.pptx

    冒泡排序(Bubble Sort)是一种简单的排序算法,通过反复遍历要排序的数列,比较相邻的两个元素,并交换它们以达到排序的目的。本文将详细介绍冒泡排序的算法思路、实现代码和优缺分析。 冒泡排序算法思路: 冒泡...

    一些常用符号的说明及使用方法举例

    linux 1. 文件路径分隔符 / 用途:用于标识文件系统的目录结构。 举例: ls /home 显示 /home 目录下的内容。 2. 管道 | 用途:将一个命令的输出传递给另一个...sort 对 data.txt 文件的内容进行排序。 5. 清屏 clear

    qsort使用法和具体举例说明

    qsort 使用法和具体举例说明 qsort 是一种快速排序算法,广泛应用于 C 语言编程中。...以上是 qsort 使用法和具体举例说明,涵盖了多种数据类型的排序,包括整数、字符、浮点数、结构体和字符串等。

    Perm.java排序

    排序问题,这里用1,2,3,4举例,你下载后可以通知改变数组来改变要排列的数

    Java list 数字特殊字符串排序方法 [1,1-2,3-1-4,1-3,10....]

    大家知道,[1,1-2,3-1-4,1-3,....] 如果按String 排序结果不是大家想要的,自己动手写了排序方法,举例:["10","10", "12", "1-2-3", "1-2", "5-2-1", "4", "4-6", "3-5-6", "3-2-1", "1-2-4", "1-1-4", "2", "3", ...

    计算机后端-Java-Java核心基础-第22章 常用类 21. Comparable自然排序举例.avi

    计算机后端-Java-Java核心基础-第22章 常用类 21. Comparable自然排序举例.avi

    C语言程序设计-程序举例冒泡排序.pptx

    **冒泡排序**是一种简单的排序算法,其基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。...

Global site tag (gtag.js) - Google Analytics